C# 使用asp.net mvc时,如何从下拉列表中选择默认值?

C# 使用asp.net mvc时,如何从下拉列表中选择默认值?,c#,asp.net-mvc-2,C#,Asp.net Mvc 2,这似乎是一个相当简单的问题 我正在使用Pubs数据库和Authors表。我使用Linq to SQL作为数据访问,并使用ASP.net MVC创建了一个编辑视图。作者模型的最后一个属性是'contract',它是真/假值。我试图做的是创建一个带有“yes”或“no”值的DropDownList,并在页面加载来自authors模型的值时绑定到该列表 以下是我对DropDownList标记的了解: Html.DropDownList("dropDownList", new[] {

这似乎是一个相当简单的问题

我正在使用Pubs数据库和Authors表。我使用Linq to SQL作为数据访问,并使用ASP.net MVC创建了一个编辑视图。作者模型的最后一个属性是'contract',它是真/假值。我试图做的是创建一个带有“yes”或“no”值的DropDownList,并在页面加载来自authors模型的值时绑定到该列表

以下是我对DropDownList标记的了解:

Html.DropDownList("dropDownList", new[]
{                        
   new SelectListItem { Text = "Yes", Value = "true" }, 
   new SelectListItem { Text = "No", Value = "false" } 
})
视图模型返回如下所示:

 model.contract
这是一个布尔值'true'或'false'

使用模型值在下拉列表中设置正确值的最简单方法是什么

回答

而不是仅仅使用:

model.contract
我继续使用:

Model.contract 

它访问了页面级模型,这正是我所需要的。之后,其他所有事情都一起出现了。

< P>我会考虑使用复选框而不是下沉列表:

@Html.CheckBox("checkbox", model.contract)
如果仍要使用下拉列表,请尝试以下操作:

Html.DropDownList("dropDownList", new[]
{                        
   new SelectListItem { Text = "Yes", Value = "true", Selected = ( model.contract == true) }, 
   new SelectListItem { Text = "No", Value = "false", Selected = ( model.contract == false )} 
})

这是正确的。我可能会选择速记<代码>模型.合同和
!所选<代码>指标的模型.合同
。确保视图继承模型类
Inherits=System.Web.Mvc.ViewPage
除了需要访问页面级模型之外,其他一切都是正确的。从小写字母“m”到大写字母“m”改变了一切。谢谢你的帮助@Nathan,我继续使用速记符号,因为当我把它作为代码阅读时,它会产生更多的效果。谢谢