限制1个案例的客户端验证,并在同一屏幕(cshtml)MVC中启用其他案例

时间:2014-08-09 17:31:11

标签: asp.net-mvc validation

我有一个视图,它有几个输入字段(文本框和下拉列表),这是一个编辑屏幕,输入元素的数据是从数据库加载的。当用户保存表单时,我需要在这里执行客户端验证。这很有效!

在另一个案例(案例:2)中,我需要使用来自DB的数据加载相同的屏幕,但我不需要在此处进行客户端验证。 (案例1和案例2之间的差异是文本框值)

那么我如何在特定文本框值为" A"的情况下执行客户端验证?当特定文本框的值不是" A"。

时,限制客户端验证的发生。
  1. 有可能吗?
  2. 或者建议在这两种情况下使用2个屏幕。但是我的模型类结构对于用验证属性修饰的两种情况都是相同的。

1 个答案:

答案 0 :(得分:1)

您可以将文本框值放在View中的Viewbag中,并在视图上禁用客户端验证,条件为: -

控制器:

[HttpGet]
Public ActionResult YourAction()
{
   //get data from db and bind to model
     Viewbag.textvalue=....//Some Value...
     return View(model);
}

查看:

@{
  if(Viewbag.textvalue!="A"){
  HtmlHelper.ClientValidationEnabled = false;
  }
}

注意:

以上代码将根据您问题中指定的文本框值禁用完整表单上的客户端验证。