相关疑难解决方法(0)

当表单重新显示为失败值时,.input-validation-error到文本框

我问了一个问题,为什么在我的应用程序中,当我使用模型绑定来验证模型(TryUpdateModel())时,文本框被突出显示(即红色边框和粉红色阴影背景应用于文本框)但是当我使用时手动验证(ModelState.AddModelError).现在已经2天了,没有任何答案.我自己尝试了所有的事情而没有成功.所以,我决定以不同的方式提出这个问题.

我理解IT的方式,这就是ModelBinding如何处理请求.

  1. ModelBinding从httpcontext获取传入值
  2. 它实例化该模型的对象
  3. 尝试将这些值解析为对象
  4. 如果属性出现问题,它会使用ModelState.AddModelError来标记出现错误的属性.
  5. 重新显示视图

这是我的问题当重新显示表单时:

正在为其值无效的文本框做些什么来突出显示?

我知道,有一个在少数的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)

asp.net-mvc model-binding

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

asp.net-mvc ×1

model-binding ×1