我们有一个包含很多字段的普通 ASP.NET MVC 表单。第一个字段是最重要的,它是一个下拉列表。假设它是公司字段,它包含两个值“可口可乐”和“百事可乐”。
公司字段如下所示:
<div class="editor-label">
@Html.LabelFor(Function(model) model.Company)
</div>
<div class="editor-field">
@Html.DropDownListFor(Function(model) model.Company, TryCast(ViewData("Companies"), SelectList), New With {Key .style = "blah blah;"})
@Html.ValidationMessageFor(Function(model) model.Company)
</div>
因为重要的是这个选择是主动做出的,而不是仅仅因为它是按字母顺序排列的第一个而简单地留在“可口可乐”上,所以我们首先需要该字段为空(验证数据注释负责强制用户输入内容)。
这很容易用 Javascript 完成,如下所示:
function InitialiseForm() {
$('#Company').prop('selectedIndex', -1);
}
window.onload = InitialiseForm;
但是,在某些情况下,表单并未完全加载为空白,而是在控制器中初始化了公司字段,如下所示:
modelObject.Company = "Coca Cola"
在这种情况下,我们当然不希望 Javascript 执行和删除它。
在这种情况下,正常的解决方案是什么?