如果字段值已失效,如何将字段值保留在ASP.NET MVC表单中?

Pet*_*jan 1 c# validation asp.net-mvc modelstate asp.net-mvc-2

我有一个表单在发送电子邮件之前经过一些验证.

我已经尝试使用它进行验证,其中方法ValidateInput根据输入设置ModelState:

[HttpPost]
public ActionResult Create(FormCollection collection)
{
    ValidateInput(collection);
    if (ModelState.IsValid == false) return View(collection);
Run Code Online (Sandbox Code Playgroud)

如果某些内容无效,则会清除所有输入的字段.我想在字段中保留所有输入的数据.我怎样才能做到这一点?

Kon*_*kus 6

您是否在表单或常规html标签中使用Html帮助器作为输入字段?

<%: Html.TextBoxFor(x => x.Message) %> - original value will be kept
<input type="text" name="Message" /> - original value will be lost after postback
Run Code Online (Sandbox Code Playgroud)

此外,您还可以使用内置验证(使用数据注释属性)而不是使用自己的验证方法.