Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC 4,仅在显示文本框时验证_C#_Javascript_Html_Asp.net Mvc - Fatal编程技术网

C# MVC 4,仅在显示文本框时验证

C# MVC 4,仅在显示文本框时验证,c#,javascript,html,asp.net-mvc,C#,Javascript,Html,Asp.net Mvc,我有一个模型: [Required(ErrorMessage = "Dit veld is verplicht")] [Range(60, 60000, ErrorMessage = "De waarde moet tussen de 60 en 60000 liggen")] public double? Kilometers { get; set; } [Required(ErrorMessage = "Dit veld is verplicht")] public int? Minute

我有一个模型:

[Required(ErrorMessage = "Dit veld is verplicht")]
[Range(60, 60000, ErrorMessage = "De waarde moet tussen de 60 en 60000 liggen")]
public double? Kilometers { get; set; }

[Required(ErrorMessage = "Dit veld is verplicht")]
public int? Minutes { get; set; }
和我的html:

<div class="control-group container-trigger" id="container-distance">
  <label class="control-label" for="trigger-distance">Aantal kilometers</label>
  <div id="distance" class="controls">
    @Html.TextBoxFor(m => m.Alert.Kilometers, new { id = "trigger-distance", @name = "trigger-distance" })
    @Html.ValidationMessageFor(m => m.Alert.Kilometers, "", new { @class = "error-0" })
  </div>
</div>
<div class="control-group container-trigger" id="container-minutes">
  <label class="control-label" for="trigger-minutes">Aantal minuten</label>
  <div id="minutes" class="controls">
     @Html.TextBoxFor(m => m.Alert.Minutes, new { id = "trigger-minutes", @name = "trigger-minutes" })
     @Html.ValidationMessageFor(m => m.Alert.Minutes, "", new { @class = "error-0" })
   </div>
</div>

南极公里
@TextBoxFor(m=>m.Alert.km,新的{id=“触发器距离”,@name=“触发器距离”})
@Html.ValidationMessageFor(m=>m.Alert.km,“,new{@class=“error-0”})
南极分钟
@TextBoxFor(m=>m.Alert.Minutes,新的{id=“trigger Minutes”,@name=“trigger Minutes”})
@Html.ValidationMessageFor(m=>m.Alert.Minutes,“,new{@class=“error-0”})
我有一个下拉列表,如果我做了选择,我需要它显示一个文本框。如果我选择第一个选项,它将显示一个文本框,持续数分钟。如果我选择第二个选项,它将显示一个距离文本框。我所拥有的是,如果我点击submit按钮,我会得到一个文本框的验证错误,该文本框不会从表单中显示出来,但只有当它们被显示时,它们才是必需的


如何解决此问题?

您已使用[required]属性将它们都设置为必需。因此,如果您没有为其中任何一个设置值,它将抛出客户端验证。
您必须从html中删除“required”属性或删除“ValidationMessageFor”

我想您是在使用jquery进行不引人注目的验证?如果是,您可以使用$.validator.defaults.ignore属性指定在验证期间应忽略的任何选择器,例如:

$.validator.defaults.ignore = ':disabled,:hidden,.ignore';

只需确保您在此处指定了与隐藏控件匹配的内容。

条件验证将帮助您实现所需内容

您是在使用客户端验证,还是希望在服务器端进行验证?这仍然会导致服务器端验证失败并返回错误。