ASP.NET MVC 3 - 表达式树可能不包含动态操作

时间:2012-09-14 10:47:44

标签: asp.net-mvc

我得到:表达式树可能不包含动态操作

当我这样做时:

@Html.TextBoxFor(m => m.Translations[ViewBag.Languages[i].CultureCode].Title)
<br/>
@Html.TextBoxFor(m => m.Translations[ViewBag.Languages[i].CultureCode].PreviewDescription)
<br/>
@Html.TextBoxFor(m => m.Translations[ViewBag.Languages[i].CultureCode].FullDescription)

我之前正在做更简单的TextBoxFor,例如:

@Html.TextBoxFor(m => m.ContactName)
@Html.TextBoxFor(m => m.EmailAddress)

在View的顶部,我的using语句类似于:@model x.y.z.Listing

2 个答案:

答案 0 :(得分:3)

如消息所示,您在lambda表达式中使用的是viewbag,这是一个动态操作:

@Html.TextBoxFor(m => m.Translations[ViewBag.Languages[i].CultureCode].Title)

要解决您的问题,只需将动态移出,就像这样

@{
    string cultureCode = ViewBag.Languages[i].CultureCode
}

 @Html.TextBoxFor(m => m.Translations[cultureCode].Title) 

答案 1 :(得分:0)

我认为,您必须检查您是否使用了强类型视图。