In this code in an Edit
view, the correct vendor name text appears but it is not validated when I blank its textbox and push Save. The Vendor is a property of the Order model, and VendorName is a property in the Vendor model. They relate referentially. My form does not all input into a single table, but on satellite tables as well.
<%= Html.TextBox("Vendor.VendorName")%> <%= Html.ValidationMessage("Vendor.VendorName")%>
Why is validation not occuring?
This seems to work, but it seems like a hack to me:
using M = HelloUranus.Models //... namespace HelloUranus.Controllers { public class OrderDetailController : Controller { //... private M.DBProxy db = new M.DBProxy(); [AcceptVerbs(HttpVerbs.Post)] public ActionResult Edit(int id, FormCollection collection) { //... var orderDetail = db.GetOrderDetail(id); //... try { if (string.IsNullOrEmpty(Request.Form["Vendor.VendorName"])) { throw new Exception(); } UpdateModel(orderDetail); db.Save(); return RedirectToAction("Details", new {id = orderDetail.odID } ); } catch { ModelState.AddRuleViolations(orderDetail.GetRuleViolations()); return View(orderDetail); } //... } //... }