В этом коде в представлении Edit
отображается правильный текст имени поставщика, но он не проверяется, когда я очищаю его текстовое поле и нажимаю Сохранить. Vendor является свойством модели Order, а VendorName является свойством модели Vendor. Они относятся ссылочно. Моя форма не все вводится в одну таблицу, но также и на спутниковые таблицы.
<%= Html.TextBox("Vendor.VendorName")%>
<%= Html.ValidationMessage("Vendor.VendorName")%>
Почему проверка не происходит?
Кажется, это работает, но мне кажется, что это взлом:
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);
}
//...
}
//...
}