【发布时间】:2015-04-30 23:01:54
【问题描述】:
在我看来,我有表单和两个字段集:modelA 和 modelB 输入字段。一些模型A 和模型B 字段是必需的,因此有一些验证机制(ValidationMessageFor)。例如,我想根据单选按钮显示 modelA 字段集或 modelB 字段集(现在我在 jQuery 和 css 显示属性中执行此操作)。我需要禁用对隐藏块中的字段的验证。我不应该只使用 css 来显示/隐藏功能吗?
例如:
型号:
public class ModelA
{
[Required]
public string FirstMidName { get; set; }
[Required]
public string LastName { get; set; }
public string Position { get; set; }
}
public class ModelB
{
[Required]
public string Name { get; set; }
public string IC { get; set; }
}
查看:
@using (Html.BeginForm())
{
<div id="modelA-block">
// inputs and validation for modelA
</div>
<div id="modelB-block">
// inputs and validation for modelB
</div>
<input type="submit" value="Save" />
}
<script>
$(function () {
$("#myRadioButton").change(function (arg) {
var type= $(this).val();
if (type== 1) {
$("#modelA-block").css("display", "block");
$("#modelB-block").css("display", "none");
}
if (type== 2) {
$("#modelA-block").css("display", "none");
$("#modelB-block").css("display", "block");
}
});
});
</script>
【问题讨论】:
-
创建 1 个包含属性的视图模型,包括一个将单选按钮绑定到的视图模型,并将 foolproof
[RequiredIf]或类似属性应用于属性。 -
这很好,但我想我不能使用它,因为我使用复合模型(见下文),所以我看不到子模型的无线电属性。
-
我的意思不是包含其他模型的模型。我的意思是包含所有属性的视图模型。在示例中,您显示了 5 个属性 -
FirstMidName、LastName、Position、Name和IC以及要绑定到的单选按钮的附加属性。
标签: jquery asp.net-mvc validation