我是ASP.net MVC的初学者,并且在阅读一本书的同时构建了我的原始应用程序。
由于服务器的限制,我正在尝试降级项目。
我已经解决了一些错误,但现在我坚持这个: 如果我构建它构建正常,但是当我按下播放时,我收到此错误:
编译器错误消息:CS0246:找不到类型或命名空间名称“dynamic”(您是否缺少using指令或程序集引用?)
它出现在这一行:
[System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()]
第142行:公共类views_rooms_index_aspx:System.Web.Mvc.ViewPage,System.Web.SessionState.IRequiresSessionState,System.Web.IHttpHandler { 第143行:
144行:私有静态bool @__初始化;
我认为可能源自我的视图中的某个地方:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
System.Web.Mvc.ViewPage是否只能在asp.net 4中执行?对于ASP.net 3.5,我需要用什么来替换它?
答案 0 :(得分:2)
{4.0}中引入了dynamic
关键字,并且在此之前的任何版本中都不可用。
我相信MVC与ASP.NET 3.5中的mvc视图的默认基类是System.Web.Mvc.ViewPage
,没有任何泛型类型。如果要添加强类型模型(建议在将数据从控制器传递到视图时建议),则应创建视图模型类,并将dynamic
替换为视图模型的名称空间限定名称
示例:您希望将从控制器中某处获得的字符串name
传递到Home / Index视图。执行以下操作:
HomeIndexViewModel
文件夹中创建一个类Models
(名称无关紧要,但这是一个很好的;)),并为其提供public string Name {get; set;}
属性。 return View(model);
重载将其传递给视图。System.Web.Mvc.ViewPage<YourProject.Models.HomeIndexViewModel>
。您现在可以在视图中使用Model.Name
访问该名称。答案 1 :(得分:1)
您的Inherits
属性:
Inherits="System.Web.Mvc.ViewPage<dynamic>"
将dynamic
类型作为泛型类型 - 将其更改为正确的ViewModel类型。
例如:
Inherits="System.Web.Mvc.ViewPage<ProductViewModel>"
答案 2 :(得分:0)
上面的答案非常清楚
你可以考虑使用:
http://www.jetbrains.com/resharper/
我用它将我的网站转换为网络应用程序,这确实有帮助。