在我的控制器中:
ViewBag.Type = new[]
{
new SelectListItem { Value = "1", Text = "Campaign Member" },
new SelectListItem { Value = "2", Text = "Support Member" },
};
在我看来:
<div class="form-group">
@Html.Label("Type")
@Html.DropDownList("MemberType", (IEnumerable<SelectListItem>)ViewBag.Type, "Member Type")
</div>
if (ViewBag.MemberType == "2")
{
<div class="form-group">
@Html.LabelFor(model => model.State)
@Html.CheckBoxFor(model => model.State, new { @class = "checkbox", @type = "checkbox" })
</div>
}
下拉列表显示有两个选项,但在选择项目时没有任何反应。我试图在运行时根据用户选择显示HTML的一部分。
答案 0 :(得分:0)
您正在使用&#34; ViewBag.MemberType&#34;在您的条件中,但该对象不存在。你最好用jquery来处理这个问题:
$("#stateDiv").hide();
$("#MemberType").on("change", function () {
if ($(this).val() == 2) {
$("#stateDiv").show();
}
});
上面的代码最初隐藏了&#34;状态&#34;直到从下拉列表中选择一个值。如果选择的值== 2,则显示&#34;状态&#34;
最后,重命名你的状态&#34;我在上面的示例代码中提供的名称:
<div id="stateDiv" class="form-group">
@Html.LabelFor(model => model.State)
@Html.CheckBoxFor(model => model.State, new { @class = "checkbox", @type = "checkbox" })
</div>