在asp.net MVC应用程序中,当我们提交时,我们有机制 表单,如果值有任何问题(验证失败), 表单显示为保留旧值。怎么会发生? 这些价值保存在哪里?或者他们从FormCollection收集。
帮助将被批准。
此致 成员Parminder
答案 0 :(得分:0)
这实际上取决于您设置Controller Actions和Views的方式,因为ASP.NET MVC在多个位置查找值。
你假设它使用FormCollection是错误的,因为FormCollection是你的控制器Action作为参数接收的东西,并且与你的View完全分开,其中值实际上最终显示出来。
在1.0中,默认情况下,视图的编辑模板在大多数HtmlHelper上使用第二个参数,例如:
<%=Html.Textbox("Title", Model.ID)%>
这将从绑定的模型对象中提取旧值。因此,如果显式验证失败并返回View(对象),则将从该对象中提取值。不过,如果您明确未通过验证,例如:
if (ModelState.IsValid == false)
{
return View();
}
然后HtmlHelper代码可能会导致错误,因为没有绑定模型。
如果您完全不使用第二个参数,例如:
<%=Html.Textbox("Title")%>
该值将从post(Request.Form)值中拉出。
答案 1 :(得分:0)
一种方法是使用 ModelState.AddModelError
可以找到关于MVC错误处理的好教程here
答案 2 :(得分:0)
您可以通过使用数据
返回视图来执行此操作if (ModelState.IsValid == false)
{
return View(X);
}
X是您需要返回的数据