c# - 如何覆盖选择下拉列表的 name 和 id 属性

标签 c# asp.net asp.net-mvc asp.net-mvc-4 razor

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

我的 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>

我看到它使 name 和 id 属性都等于 CountryId。我喜欢为我的标记使用更具描述性的名称,例如国家/地区。而且我也更喜欢让我的 name 和 id 属性具有相同的描述/名称。所以我尝试了以下方法:

@Html.DropDownListFor(
     m => m.CountryId,
     new SelectList(Model.Countries, "Id", "Name", Model.CountryId),
     "-- Select --",
     new { id = "Countries", name = "Countries", @class = "form-control" }
)

上面代码的输出如下所示:

<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 而 name 保留在 CountryId?

最佳答案

之所以这样是因为属性需要大写(Name):

@Html.DropDownListFor(
     m => m.CountryId,
     new SelectList(Model.Countries, "Id", "Name", Model.CountryId),
     "-- Select --",
     new { id = "Countries", Name = "Countries", @class = "form-control" }
)

这是一个 answer对于类似的问题,在评论中需要大写“名称”。

关于c# - 如何覆盖选择下拉列表的 name 和 id 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21854445/

相关文章:

c# - Visual Studio 不会更新我的数据源的属性

javascript - 如何在 asp.net 页面中使用 javascript 创建弹出窗口 - 无法在 javascript 弹出窗口中传递值

c# - 解析网页中的超链接

javascript - 如何使用 Razor 将数组中的值输出到 MVC 中的 View ?

.net - <% : and what is the difference to <%=? 中的 ":"是什么意思

asp.net-mvc - Sitecore 内容编辑器抛出 : Server Error in '/' Application error

c# - 如何将jpeg图像序列转换成视频格式?

c# - 如何使用反射获取 Func<T> 的返回类型?

c# - 操作 XML 文档的属性

asp.net - 如何在 ASP.NET webfroms 中为网站开发两个不同的菜单栏(一个用于所有用户,另一个用于管理员)?