在 asp.net MVC 应用程序中,我们有这样的机制,当我们提交表单并且值有任何问题(验证失败)时,表单会显示回来并保持旧值。它是怎么发生的?这些值保存在哪里?或者他们从 FormCollection 收集。
将获得帮助。
问候帕米德
在 asp.net MVC 应用程序中,我们有这样的机制,当我们提交表单并且值有任何问题(验证失败)时,表单会显示回来并保持旧值。它是怎么发生的?这些值保存在哪里?或者他们从 FormCollection 收集。
将获得帮助。
问候帕米德
这实际上取决于您如何设置控制器操作和视图,因为 ASP.NET MVC 在多个位置查找值。
您认为它使用 FormCollection 的假设有点错误,因为 FormCollection 是您的控制器 Action 作为参数接收的东西,并且与您的 View 完全分开,其中的值实际上最终被显示出来。
在 1.0 中,默认情况下,视图的编辑模板在大多数 HtmlHelpers 上使用第二个参数,例如:
<%=Html.Textbox("Title", Model.ID)%>
这将从绑定的模型对象中提取旧值。因此,如果您显式验证失败并返回 View(object),则将从该对象中提取值。不过,如果您明确未能通过验证,例如:
if (ModelState.IsValid == false)
{
return View();
}
那么 HtmlHelper 代码可能会导致错误,因为没有绑定模型。
如果您完全不使用第二个参数,例如:
<%=Html.Textbox("Title")%>
该值将从帖子 (Request.Form) 值中提取。
One way to do it is to use ModelState.AddModelError
A good tutorial on MVC Error handling can be found here
您可以通过返回带有 tha 数据的视图来做到这一点
if (ModelState.IsValid == false)
{
return View(X);
}
X 是你需要返回的数据