![](/img/trans.png)
[英]ModelState.AddModelError on form level with ASP.NET MVC 2 RC
[英]ASP.Net MVC Using AddModelError with multiple ValidationSummary for querystring validation
我有一個包含兩種形式的視圖
@Html.ValidationSummary()
加載頁面后,將檢查querystring參數,如果存在,則調用:
ModelState.AddModelError("", "Querystring error");
但是,即使我在表單模型中指定屬性,這也會導致錯誤消息同時出現在@Html.ValidationSummary()
中。
我有一個解決方法,就是在模型的表單中有一個單獨的錯誤消息屬性,並填充該錯誤消息屬性,然后顯示它是否存在於標簽中,但是想知道是否可以指定一個單獨的@Html.ValidationSummary()
在表格中允許我使用ModelState.AddModelError
嗎?
遵循@GSerg提供的有用信息后,我認為我會分享自己的解決方案。
因此,我將每個表單分成兩個單獨的局部視圖,而不是在同一個視圖中包含兩個表單,然后從主視圖中調用每個表單...
@Html.Action("_RequestPartial")
@Html.Action("_LoginPartial")
每個局部視圖都將包含要傳遞給它的模型,以及一個內部帶有Html.ValidationSummary()
的Html.BeginForm
。
然后在Controller中,設置代碼以正常返回視圖(在這種情況下為Index視圖)...
[HttpGet]
public ActionResult Index()
{
return View();
}
然后對於部分視圖,為每個帶有ChildActionOnly
注釋的部分視圖設置PartialViewResult
。
[ChildActionOnly]
public PartialViewResult _RequestPartial()
{
... code that populates model you want to pass ...
return PartialView(model);
}
[ChildActionOnly]
public PartialViewResult _LoginPartial()
{
... code that populates model you want to pass ...
return PartialView(model);
}
希望這對某人有幫助。
要顯示特定的驗證消息,請參見下面的代碼段。 控制器:
[HttpGet]
public ActionResult Index()
{
ModelState.AddModelError("Error1", "Querystring error");
return View(new SampleViewModel());
}
查看:
@Html.ValidationMessage("Error1")
只是試圖創建一個小提琴以獲得完整的圖片。 https://dotnetfiddle.net/GoMMhy
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.