CS1963:表达式树可能不包含动态操作

时间:2013-07-26 22:06:27

标签: asp.net-mvc asp.net-mvc-3 c#-4.0

我在下面看到了很多关于我的问题的答案,似乎是'@model MyModel',但它对我使用的代码没有帮助。

背景:我正在VS2010上使用MVC3(没有Razor)进行MVC项目。我写了一个控件,我在一个页面中引用:

 <% Html.RenderPartial("~/Views/ListGrid.ascx", new UpdateRequest { Id =Int32.Parse(ViewData["Id"].ToString())}); %> 

ListGrid.ascx不是强类型视图。因此它继承了动态类型:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>"  %>

我知道lamda表达式不能用于非强类型视图,所以,

<%=Html.TextBoxFor(l => Model.ExpiryYear)%>

将显示错误CS1963:表达式树可能不包含动态操作。

正如我所提到的,我发现的答案是包含@model,但是如果我不使用Razor,那么相当于使我的非强类型视图能够正常工作?

不使用Razor不是我的选择,也不是一种选择,所以请不要问我为什么不使用它。

1 个答案:

答案 0 :(得分:1)

将页面顶部的声明更改为:

<%@ Control Inherits="System.Web.Mvc.ViewPage<IEnumerable<YourModel>>" %>