在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);
}
//...
}
//...
}