我正在渲染一个具有整数值的下拉列表,SelectListItem
value属性只接受一个字符串,因此需要转换。 <{1}}功能无法使用。
.ToString()
我在运行时遇到程序集引用错误:
@Html.DropdownList("ddl", Model.recordList.Select(
q => new SelectListItem
{
Text = q.recordName,
Value = SqlFunctions.StringConvert(q.recordId)
}
, "choose one")
// recordId is an Integer
在我的视图中已经有一个对System.Data.Entity和The type or namespace name 'Objects' does not exist in the namespace
'System.Data' (are you missing an assembly reference?)
的项目引用。我也期待这一点,因为它没有出现在Intellisense中。我可以使用控制器,但不在视图中。
我在这里打破任何MVC规则吗?或者可能是配置错误了?
答案 0 :(得分:1)
这是一个配置错误。
要解决,我必须:
1)将其添加到Views/Web.config
。
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="System.Data.Entity" />
<add namespace="System.Data.Objects.SqlClient" />
</namespaces>
</pages>
</system.web.webPages.razor>
2)更改Project > References > System.Data.Entity
属性Copy Local
= True
。程序集未被复制到bin
,因此标识为missing
。