我在验证视图上的表单时遇到了困难。
我有一个控制器,UpdateModel(object);
因此不确定如何构建验证。
我已经[Required(ErrorMessage = "Please enter a contact name")]
为所有强制属性添加了。
我如何让这一切正常工作?因为我的控制器正在做一些复杂的事情。下面是控制器代码:
[HttpPost]
public ActionResult PersistListing()
{
var listingView = new MaintainListingView();
if (!string.IsNullOrEmpty(Request["Listing.Guid"]))
{
var dbListing = _service.GetByGuid<Listing>(Guid.Parse(Request["Listing.Guid"]));
if (dbListing != null)
{
listingView.Listing = dbListing;
}
}
UpdateModel(listingView);
RebindTranslationsDictionary(listingView.Listing);
listingView.Listing.CategoryId = _service.GetByGuid<ListingCategory>(listingView.SelectedListingCategoryGuid).Id;
_service.PersistEntity(listingView.Listing);
return RedirectToAction("Edit", new { id = listingView.Listing.Guid });
}
当我取消注释基本模型上的必需属性时,当我尝试更新模型()时出现错误;
任何人都可以快速解决这个问题吗?
编辑:我正在使用我正在使用Html.TextBoxFor()
在视图上创建控件。
添加了 TryUpdateModel 但不确定如何使用填充的错误消息重定向用户:
if (TryUpdateModel(listingView))
{
RebindTranslationsDictionary(listingView.Listing);
listingView.Listing.CategoryId =
_service.GetByGuid<ListingCategory>(listingView.SelectedListingCategoryGuid).Id;
_service.PersistEntity(listingView.Listing); //save the ting
return RedirectToAction("Edit", new {id = listingView.Listing.Guid});
}
我的视图中是否需要 EditForModel 标记?