Ton*_*ony 0 html.dropdownlistfor asp.net-mvc-3
我在使用Razor语法的MVC 3中的代码片段有问题.在我的数据库表(MySQL)中,我有一个列(FK)LanguageID [int].然后,在该视图中,我想将该列分配给DropDownList,其中包含我即时生成的语言列表:
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem
{
Value = tableRow.ID.ToString()
,
Text = "language"
}
Run Code Online (Sandbox Code Playgroud)
然后,在View中,我将该列表连接到Language属性:
@Html.DropDownListFor(
model => model.Language,
new SelectList(ViewData["LanguageList"] as List<SelectListItem>,
"Value", "Text")
)
Run Code Online (Sandbox Code Playgroud)
但是,当我将数据发布到服务器时,它返回错误结果"The value '353' is invalid.",其中353是来自数据库的语言ID.我究竟做错了什么 ?
编辑Whle调试,我注意到ModelState中的错误消息: "The parameter conversion from type 'System.String' to type 'FavorytaWeb.Models.BookLanguage' failed because no type converter can convert between these types."
更换:
@Html.DropDownListFor(
model => model.Language,
...
)
Run Code Online (Sandbox Code Playgroud)
有:
@Html.DropDownListFor(
model => model.Language.LanguageID,
...
)
Run Code Online (Sandbox Code Playgroud)
您无法将值绑定353到表示的复杂类型model.Language.它没有意义.您只能将其绑定到标量属性.
| 归档时间: |
|
| 查看次数: |
670 次 |
| 最近记录: |