asp.Net   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net-mvc-3 – ASP.NET MVC 3,Razor Views和便携式区域大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用ASP.NET MVC 3和剃刀视图的便携式视图,因为这似乎是创建一个简单的插件架构的最佳方式。所以我有我的类库设置,我的视图位于/Views/Admin/Index.cshtml,它被设置为嵌入式资源。然后,我将该项目作为主要Web应用程序项目的依赖项。当我尝试访问管理控制器时,索引操作我收到一个无法找到该视图文件的消息(因此控件正确包含在内)。我假设它正在尝试查看主要的Web应用程序项目,而不是便携式区域的二进制文件。有没有办法让剃刀的意见与便携式区域一起工作?

解决方法

我在这个问题上一直在努力一段时间,但我想我终于明白了

文件夹结构以及命名空间在项目中的名称空间是非常重要的,以便正常工作!

我在这里有一个带有嵌入式剃须刀的便携式区域的工作示例:

看看项目的结构。

该区域的名称是UserAdministration,在项目根目录中有一个UserAdministrationRegistration类,该类位于UserAdministration命名空间中。
然后有一个Controllers,Models和Views文件夹(就像一个普通的MVC项目),在Views文件夹下,还有一个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-3 – ASP.NET MVC 3,Razor Views和便携式区域全部内容,希望文章能够帮你解决asp.net-mvc-3 – ASP.NET MVC 3,Razor Views和便携式区域所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。