我问了一个问题,为什么在我的应用程序中,当我使用模型绑定来验证模型(TryUpdateModel())时,文本框被突出显示(即红色边框和粉红色阴影背景应用于文本框)但是当我使用时手动验证(ModelState.AddModelError).现在已经2天了,没有任何答案.我自己尝试了所有的事情而没有成功.所以,我决定以不同的方式提出这个问题.
我理解IT的方式,这就是ModelBinding如何处理请求.
这是我的问题当重新显示表单时:
正在为其值无效的文本框做些什么来突出显示?
我知道,有一个在少数的site.css类,如.输入验证错误和点域验证错误是那些获得应用到文本框.也许ModelBinding在内部使用一个命令,如AddCss("#MyTextBox",".input-validation-error").
如果我知道它是如何工作的,我可以(也许)手动解决我的问题.
编辑
根据@Ian Galloway的要求,这是代码
public class RegistrationController : Controller
{
public FormViewModel formViewModel;
private RegistrationService _registrationService = new RegistrationService();
private SaveService _saveService = new SaveService();
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var serialized = Request.Form["formViewModel"];
if (serialized != null)
{
formViewModel = (FormViewModel)new MvcSerializer()
.Deserialize(serialized);
TryUpdateModel(formViewModel);
}
else
formViewModel = (FormViewModel)TempData["formViewModel"]
?? new FormViewModel();
}
protected override void OnResultExecuted(ResultExecutedContext filterContext) …Run Code Online (Sandbox Code Playgroud)