你可以解决它的一种方法是创建一个List。
假设你的工资状况是这样的:
public class PayStatus
{
int id;
string StatusName;
}
所以你会做这样的事情:
IEnumerable<PayStatus> memberInvoiceStatus = new List<PayStatus>(dr.GetPayStatus());
var statusList = new List<SelectListItem>();
foreach(var status in memberInvoiceStatus)
{
statusList .Add(new SelectListItem()
{
Text = status.StatusName,
Value = status.id
Selected = status.StatusName == "MyDefaultStatus" // or some logic that will mark as True the item that you want to be the default selected one.
}
}
我猜你仍然可以使用它像你使用它,而是考取这一点:
ViewData["memberInvoiceStatus"] = new SelectList(memberInvoiceStatus, "payStatusId", "payStatusText");
你会传递:
ViewData["memberInvoiceStatus"] = new SelectList(statusList , "payStatusId", "payStatusText");
虽然我认为这是比较容易,如果你刚刚添加的SelectListItem
列表中的可视数据
ViewData["ListOfStatus"] = statusList;
,并在视图中你做这样的事:
<%= Html.DropDownList("Status",ViewData["ListOfStatus"]) %>
,这将使作为默认(选定)项目的一个列表,其中包含您标记为选中元素的列表(Selected = true
)。
设置了默认值,是的,但基本上它是一个“无选项”值。这可以很方便,并且通常是要走的路。我假设他希望它从模型中获取默认值 - 比如在编辑视图中而不是新视图中。 – tvanfosson 2010-01-11 20:16:58
@tvanfosson,问题中没有足够的信息。我只是在这里猜测。 – 2010-01-11 20:21:03