【发布时间】:2016-09-17 20:26:52
【问题描述】:
我有一个网页,它通过像这样的 RenderPartial Html Helper 渲染组件来动态创建组件
Html.RenderPartial("_UploadStaticField", config);
配置对象中有一个名为“isUnderReview”的字段。当此设置为 true 时,应使用以下代码禁用组件
//Single selection
<div class="editor-section">
<div class="label">
@Html.DisplayEditLabel(Model.Label, Model.Required.Value)
</div>
<div class="field large-text-field">
@Html.DropDownListFor(m => m.SelectedListOptionID, new SelectList(Model.ListOptions, "ID", "Name", Model.SelectedListOptionID).OrderBy(l => l.Value), new Dictionary<string, object>{
{"id", "staticField_" + Model.ID}})
</div>
</div>
<script>
$(document).ready(function () {
if ("@Model.IsUnderReview" == "True") {
document.getElementById("staticField_" + "@Model.ID").disabled = true;
}
});
</script>
和..
//Multiple selection
<div class="editor-section">
<div class="label">
@Html.DisplayEditLabel(Model.Label, Model.Required.Value)
</div>
<div class="field large-text-field">
@Html.ListBoxFor(x => x.SelectedRoles, filetypes, new { @class = "multiselectFileTypes" , id = "staticFieldM_" + Model.ID})
</div>
</div>
@Scripts.Render(BundleConfig.Scripts_MultiSelect)
<script>
$(document).ready(function () {
if ("@Model.IsUnderReview" == "True") {
document.getElementById("staticFieldM_" + "@Model.ID").disabled = true;
}
});
</script>
代码可以运行到方法运行但组件仍然可以使用的程度。有没有办法取消任何用户选择,因为值不会改变?
【问题讨论】:
标签: asp.net-mvc razor html.dropdownlistfor html.listboxfor