【问题标题】:MVC dropdownlist for string value not ID字符串值不是 ID 的 MVC 下拉列表
【发布时间】:2013-06-24 18:52:19
【问题描述】:

有没有办法在 MVC 中创建一个下拉列表,为变量提供字符串值而不仅仅是 ID?我在下拉列表中看到的所有内容都对其进行了设置,以便名称显示在下拉列表中,但变量始终获取 ID 值。有没有办法设置它,以便变量获取字符串值?

【问题讨论】:

  • 使 ID = name 和 name = name。这样显示的内容与下拉菜单的“value”或“id”相同。

标签: model-view-controller asp.net-mvc-4 html-select html.dropdownlistfor


【解决方案1】:

如果您想选择 id 并获得一个值,@Jack 建议的效果会很好。如果您想获取选择的文本而不是值,您可以使用 jquery 来实现

$('.dropdown').change(function(){
     var result = $('.dropdown').text();
});

.val() 将为您提供所选的值,而 .text() 将为您提供所选的文本。希望这会有所帮助。

【讨论】:

    【解决方案2】:

    我想这可能是你想要的..

    您可以创建一个新的 SelectList 实例,第一个参数是您希望在下拉列表中显示的列表。第二个参数是您要用于选项标签值的属性,第三个参数是您要用于填充选项标签内的文本的属性。

    在此示例中,我使用 ID 作为值,但您实际上可以选择字符串值的任何属性。

    控制器代码

    public ActionResult Create()
    {
       testDB.ContactTypes.Load();
       // "ID" is the property that we want to use for our option value
       // "Name" is the property that we want to use for the text inside of our tag
       ViewBag.ContactTypes = new SelectList(testDB.ContactTypes.Local.ToList(), "ID", "Name");
       return View();
    }
    

    剃须刀

    <div class="editor-field">
      @Html.DropDownListFor(model => model.ContactType , (SelectList)ViewBag.ContactTypes)
    </div>
    

    【讨论】:

      猜你喜欢
      • 2018-11-04
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      相关资源
      最近更新 更多