MVC发布了价值观

时间:2009-10-30 12:56:54

标签: asp.net-mvc formcollection

在asp.net MVC应用程序中,当我们提交时,我们有机制 表单,如果值有任何问题(验证失败), 表单显示为保留旧值。怎么会发生? 这些价值保存在哪里?或者他们从FormCollection收集。

帮助将被批准。

此致 成员Parminder

3 个答案:

答案 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是您需要返回的数据