首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >DropDownListFor生成'The name 'model‘in not exist in the current context’错误

DropDownListFor生成'The name 'model‘in not exist in the current context’错误
EN

Stack Overflow用户
提问于 2011-04-10 07:27:11
回答 2查看 2.7K关注 0票数 2

刚开始使用MVC3时,在视图中构建下拉菜单时遇到了问题。使用项目的SelectList填充ViewModel:

代码语言:javascript
复制
mdm.CaptionSetList=new SelectList(CaptionSet.Fetch(), "CaptionSetId", "Description")

然后在视图中使用:

代码语言:javascript
复制
@Html.DropDownListFor(model => model.Entity.CaptionSetId, model.CaptionSetList) 

但当页面命中时,该行会突出显示编译器消息:

模型编译器错误消息: CS0103:名称‘

’在当前上下文中不存在

我犯的初学者的错误是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-10 07:33:44

DropDownListFor的第一个参数是一个函数,因此该部分是正确的,但第二部分只是期望一个SelectList,所以您所需要做的就是

代码语言:javascript
复制
@Html.DropDownListFor(model => model.Entity.CaptionSetId, Model.CaptionSetList) 

注意大小写。

进一步澄清

在强类型视图中,Model是一个引用绑定到视图的模型的属性。由于第二个参数只是期望一个列表,并且您已经指定该模型有一个名为CaptionSetList的属性,因此您将该列表指定为Model.CaptionSetList。如果你把这个列表放在ViewBag里,你就会把ViewBag.CaptionSetList放进去。

这与第一个参数形成对比,第一个参数是一个函数,它接受一个与模型类型相同的参数。

票数 5
EN

Stack Overflow用户

发布于 2019-06-04 03:07:45

得到相同的错误。

在我的例子中,我做了一些搜索和替换,忘记了修改lambda表达式:

代码语言:javascript
复制
@Html.DropDownListFor(m => model.StagingDelegate.ManagerId, new[]{
             new SelectListItem() {Text = "ManagerId 1", Value = "1"},
             new SelectListItem() {Text= "ManagerId 2", Value= "2"},
             }, "Choose a Manager", new { @class = "form-control form-control-sm " })

用模型=>替换m =>:

代码语言:javascript
复制
@Html.DropDownListFor(model => model.StagingDelegate.ManagerId, new[]{
             new SelectListItem() {Text = "ManagerId 1", Value = "1"},
             new SelectListItem() {Text= "ManagerId 2", Value= "2"},
             }, "Choose a Manager", new { @class = "form-control form-control-sm " })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5608626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档