【问题标题】:Alter option value of HTML.Dropdownlist更改 HTML.Dropdownlist 的选项值
【发布时间】:2015-04-08 23:52:42
【问题描述】:

我有一个用于下拉列表的 HTML 助手(如下所示)

查看:

 @Html.DropDownList("LocationID", null, new {id ="Location" })

控制器:

  ViewBag.LocationID = new SelectList(db.Locations, "LocationID", "LocationName", job.LocationID);

现在当它在谷歌浏览器中呈现时,它呈现如下

    <select id="Location" name="LocationID">
<option selected="selected" value="2">Cleanroom</option>
<option value="1">Head Board Assembly</option>
<option value="5">Light Testing</option>
<option value="3">Mechanical Assembly</option>
<option value="6">Picture Testing</option>
<option value="4">Quality Control</option>
<option value="7">Shipping</option>
</select>

如何将选项值从数字更改为实际值,例如:

option value =1 实际上应该等于 option value:Head Board Assembly

这样做的原因是为了一个 jquery 并在行 id 中避免进一步的混淆,例如将值作为实际值,从而避免将来使用此代码的任何人在将数值链接到实际价值

提前致谢:)

【问题讨论】:

  • 当它是.Net问题时,为什么这个标签是jQuery?

标签: c# html asp.net-mvc asp.net-mvc-4


【解决方案1】:

那么你必须在SelectList构造函数的ValueField和TextField中都传递LocationName属性:

new SelectList(db.Locations,"LocationName", "LocationName", job.LocationName);

但您应该使用LocationID 作为下拉列表的值。

【讨论】:

  • 感谢@Ehsan :) 显然可以工作,但当然会断开 LocationID :) 将来至少不知道
【解决方案2】:

您必须两次传递位置名称,而不是 LocationID 和 locationName

ViewBag.LocationID = new SelectList(db.Locations, "LocationName", "LocationName", job.LocationID);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多