asp.net-mvc-3 – ASP.NET MVC 3,Razor Views和便携式区域
我正在尝试使用ASP.NET MVC 3和剃刀视图的便携式视图,因为这似乎是创建一个简单的插件架构的最佳方式。所以我有我的类库设置,我的视图位于/Views/Admin/Index.cshtml,它被设置为嵌入式资源。然后,我将该项目作为主要Web应用程序项目的依赖项。当我尝试访问管理控制器时,索引操作我收到一个无法找到该视图文件的消息(因此控件正确包含在内)。我假设它正在尝试查看主要的Web应用程序项目,而不是便携式区域的二进制文件。有没有办法让剃刀的意见与便携式区域一起工作?
解决方法
我在这个问题上一直在努力一段时间,但我想我终于明白了。
文件夹结构以及命名空间在项目中的名称空间是非常重要的,以便正常工作! 我在这里有一个带有嵌入式剃须刀的便携式区域的工作示例:
看看项目的结构。 该区域的名称是UserAdministration,在项目根目录中有一个UserAdministrationRegistration类,该类位于UserAdministration命名空间中。 还有一些其他对于嵌入式视图工作非常重要的事情:您必须在global.asax.cs文件的Application_Start方法中注册新的视图引擎,是否这样做? PortableAreaRegistration.RegisterEmbeddedViewEngine(); 而在你的注册类中,请确保您覆盖了需要2个参数(AreaRegistrationContext context和IApplicationBus总线)的RegisterArea方法,并调用其中的基本实现: public override void RegisterArea(AreaRegistrationContext context,IApplicationBus bus) { base.RegisterArea(context,bus); // <== very important! context.MapRoute( "UserAdministration",AreaName + "/{controller}/{action}/{id}",new { controller = "UserAdministration",action = "Index",id = UrlParameter.Optional } ); } 如果你不调用base实现,你必须至少添加一个 RegisterAreaEmbeddedResources(); 以确保您嵌入的视图和资源已注册。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-4 – Visual Studio 2012 Professional中没有M
- asp.net – 如果我不限制文件上传到网络服务器的最大请求长
- asp.net – 添加电子邮件附件
- 包含模型列表的模型(MVC-3,Razor)
- 如何在ASP.NET MVC网站中为cookie设置“安全”标志?
- ASP.NET压力测试
- asp.net – MVC3的远程模型验证操作中的参数名称
- asp.net-mvc-4 – MVC4和页面生命周期?
- asp.net-mvc – 从azure云存储下载大文件的最佳方式
- asp.net – BC30560:’ExtensionAttribute’在名称空间’S
- asp.net – 如何验证文件上传的文件类型?
- asp.net-mvc-3 – 如何在MVC3中将附加列添加到We
- ASP.NET开发常用简单实用的方法
- .net – 如何将包含日期的字符串转换为其他格式?
- asp.net-mvc – 如何告诉Ninject绑定到它没有引用
- asp.net-mvc – ASP.NET MVC 2 DropDownList无法
- asp.net-core – 基本bproject create无法创建优
- asp.net-core – ASP.NET 5,希望将实体框架与Web
- 如何在asp.net c中仅获取排除时间的日期#
- asp.net – .net MVC将linq数据从控制器传递到视