【问题标题】:Turn off unobtrusive validation runtime?关闭不显眼的验证运行时?
【发布时间】:2012-07-09 00:58:18
【问题描述】:

我的 MVC 3 应用程序具有不显眼的验证功能。在一个视图中存在<form action=''>..</form>,我有两个按钮。第一个按钮在“action1”上提交表单,第二个按钮提交到“action2”。在第一种情况下,我必须验证表单,但在第二种情况下,我需要在没有验证的情况下发帖,这可能吗?目前模型在这两种情况下都可以验证。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 unobtrusive-javascript


    【解决方案1】:

    我找到了答案。要禁用对“action2”的验证,我必须在控制器中执行下一个方法:

    ModelState.Clear(); 
    

    在视野中

    Html.EnableClientValidation(false);
    

    【讨论】:

      【解决方案2】:

      你有几个选择:

      1) 不要在 Controller 操作中使用 ModelState.IsValid。在 action1 上,运行验证表单的 javascript 方法。如果表格有效,则提交表格。在 action2 上,由于您没有使用 ModelState.IsValid,请提交表单,然后您的控制器操作将运行。

      2) 在 Controller 动作中使用 ModelState.IsValid。将两个提交按钮命名为相同的名称(即“SubmitButton”)。分配“action1”和“action2”作为相应提交按钮的值。将 SubmitButton 作为字符串参数传递给 Controller 操作。如果 SubmitButton = 'action1' 查询 ModelState.IsValid。否则,不要查询 ModelState.IsValid。

      选项2代码

      控制器:

      [HttpPost]
      public ActionResult SomeAction(ModelObject theModel, string SubmitButton)
      {
          if (SubmitButton== 'Action1')
          {
              if(ModelState.IsValid)
              {
                  //do some work
              } 
              else
              {
                  return(View(theModel));
              } 
      
          }
          else //action2 has ben used to submit, so don't vaildate
          {
             //do some work
          }
      }
      

      查看:

      <input type="submit" id="action1" name="SubmitButton" value="Action1"/> 
      <input type="submit" id="action2" name="SubmitButton" value="Action2"/> 
      

      【讨论】:

        【解决方案3】:

        自从我完成 Asp.net MVC 以来已经有一段时间了,这就是你要找的吗?

        @if(false) { // Replace false with your model property
        <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-09
          • 1970-01-01
          相关资源
          最近更新 更多