C# 如何覆盖选择下拉列表的名称和id属性

C# 如何覆盖选择下拉列表的名称和id属性,c#,asp.net,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,如何覆盖HTML选择下拉列表的id和名称属性 我的HTML中有以下标记以生成选择下拉列表: @Html.DropDownListFor( m => m.CountryId, new SelectList(Model.Countries, "Id", "Name", Model.CountryId), "-- Select --", new { @class = "form-control" } ) 上述代码的输出如下所示: <select n

如何覆盖HTML选择下拉列表的id和名称属性

我的HTML中有以下标记以生成选择下拉列表:

@Html.DropDownListFor(
     m => m.CountryId,
     new SelectList(Model.Countries, "Id", "Name", Model.CountryId),
     "-- Select --",
     new { @class = "form-control" }
)
上述代码的输出如下所示:

<select name="CountryId" id="CountryId" data-val-required="Country is required" data-val-number="The field CountryId must be a number." data-val="true" class="form-control">
     <option value="">-- Select --</option>
     <option value="1">Country 1</option>
     <option value="2">Country 2</option>
     <option value="3">Country 3</option>
     <option value="4">Country 4</option>
</select>
<select name="CountryId" id="Countries" data-val-required="Country is required" data-val-number="The field CountryId must be a number." data-val="true" class="form-control">
     <option value="">-- Select --</option>
     <option value="1">Country 1</option>
     <option value="2">Country 2</option>
     <option value="3">Country 3</option>
     <option value="4">Country 4</option>
</select>
上述代码的输出如下所示:

<select name="CountryId" id="CountryId" data-val-required="Country is required" data-val-number="The field CountryId must be a number." data-val="true" class="form-control">
     <option value="">-- Select --</option>
     <option value="1">Country 1</option>
     <option value="2">Country 2</option>
     <option value="3">Country 3</option>
     <option value="4">Country 4</option>
</select>
<select name="CountryId" id="Countries" data-val-required="Country is required" data-val-number="The field CountryId must be a number." data-val="true" class="form-control">
     <option value="">-- Select --</option>
     <option value="1">Country 1</option>
     <option value="2">Country 2</option>
     <option value="3">Country 3</option>
     <option value="4">Country 4</option>
</select>

为什么只是将id属性更改为Countries,而名称保留为CountryId?

之所以如此,是因为属性需要大写名称:


这里有一个类似问题的答案,其中提到的名称需要在注释中大写。

@Html.DropDownListFor的概念是,您的视图模型也将用作表单提交模型,在这种情况下,您可以使用视图模型使用表单帖子。在您的例子中,如果您只是想自定义表单post变量,请使用@Html.DropDownListname,new SelectList…,new{id=id}好问题,我没有解释。