MVC - 如何更改帖子中文本框的值?

Pau*_*ulo 4 asp.net-mvc

用户单击我页面的提交按钮后,会有一个经过验证的文本框,如果它无效,我会使用该ModelState.AddModelError方法显示错误消息.我需要替换此文本框的值,并将包含错误消息的页面显示回用户.

问题是我无法更改文本框的值,我正在尝试ViewData["textbox"] = "new value";但它被忽略了...

我怎样才能做到这一点?

谢谢

Jef*_*rio 6

您可以使用ModelState.Remove(nameOfProperty),如:

ModelState.Remove("CustomerId");
model.CustomerId = 123;
return View(model);
Run Code Online (Sandbox Code Playgroud)

这会奏效.


Gid*_*don 5

我也不知道答案,检查ModelState对象并发现:

ModelState.SetModelValue()

我的模型有一个我检查的Name属性,如果它是无效的,则会发生这种情况:

ModelState.AddModelError("Name", "Name is required.");
ModelState.SetModelValue("Name", new ValueProviderResult("Some string",string.Empty,new CultureInfo("en-US")));
Run Code Online (Sandbox Code Playgroud)

这对我有用.