字符串值的MVC下拉列表不是ID

时间:2013-06-24 18:52:20

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

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

2 个答案:

答案 0 :(得分:0)

如果您想要选择id并获得@Jack建议的值将会很好的值。如果您想要获取所选的Text而不是值,您可以使用jquery

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

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

答案 1 :(得分:0)

我认为这可能是你所要求的......

您可以创建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>