我有以下URL:https://localhost:27635/Student/Create?PersonId=1
我还有一个填满Persons的组合框,用户可以用它来选择Person。如何将组合框设置为在默认情况下具有来自URL的PersonId ?
这是组合框代码:
@Html.DropDownListFor(
x => x.PersonId,
new SelectList(Model.Persons, "Id", "Fullname", Model.PersonId),
"-- Select --", new { @class = "form-control" }
)
包含PersonIds,显示全名。我想使用组合框而不是直接保存URL值的原因是我想允许用户更改。
另一件我很好奇的事情是,如果URL id不正确并且不在组合框中,是否有可能显示默认的-- Select --
。
你好,你可以正确地使用下面的post
基本上SelectList
函数有一个过载你可以在这个链接
中找到它因此SelectList
将采取以下
项(IEnumerable)-用于构建列表中每个SelectListItem
的项目。
dataValueField (String)—数据值字段。用于匹配SelectListItem
对应的Value
属性。
dataTextField (String)—数据文本字段。用于匹配SelectListItem
对应的Text
属性。
dataGroupField (String)—数据组字段。用于匹配对应SelectListItem
的Group
属性。
selectedValue(对象)—选择值。用于匹配对应SelectListItem
的Selected
属性。
下面是一个例子:
@Html.DropDownListFor(
m => m.CountryId, // Specifies where to store selected country Id
// It needs to be null for the default selection to work!
new SelectList(Model.Countries, // IEnumerable<Country>, contains all countries loaded from a database
"Id", // Use Country.Id as a data source for the values of dropdown items
"Name", // Use Country.Name as a data source for the text of dropdown items
13 // Specifies Australia (which has ID of 13) as the element selected by default
),
// Text of option that prompts user to select
"- Please select your country -"
)