-->

什么是错的我区在我的仓路由部署MVC4应用程序?(What is wrong with my are

2019-06-26 08:42发布

我刚刚部署了MVC4 .NET 4.0的应用程序到我的虚拟主机,为“活”的部署测试。 非 - 面积路线做工精细,如我

@Html.ActionLink("Register as a Client", "Register", "Account", new { registrationType = "Client"}, null)

链接工作正常,并且链接打开正确的页面。 然而,链接到这样一个区域基础的行动:

@Html.ActionLink("Authors", "Index", "Home", new { Area = "Author", registrationType = "Author" }, null)

实际上呈现到浏览器链接缺少行动和控制,即

http://mylivedomain.com/?Area=Author&registrationType=Author

这可能是值得一提的是MVC4的CSS捆绑功能部署后不工作,我回滚到使用经典的款式链接到个人样式表。

可能与:我的问题: 为什么在我的MVC4应用未修改的模板代码试图两次注册的地方?

JUST IN:取下区域路线映射的默认操作默认rouite解决了这个问题。 有没有默认控制器下手,在VS2012模板代码。

Answer 1:

请检查this.ControllerContext.RouteData.DataTokens [“区”]在您所在地区的行动方法。

我已经受够了类似的问题,在该地区的名称只是一个空字符串的情况。

在操作方法设置DataToken可能会为您提供一个快速修复,但它没有回答为什么MVC不设置区域名称的问题。



Answer 2:

在你的情况,因为你指定的查询字符串的区域,距离Global.asax.cs中的路线应适用。 我相信你有这样的事情有:

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Default",
            "{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        ).DataTokens.Add("area","Author");
    }

此代码首页/索引默认路由和URL跳过首页/索引 。 如果您在其他例如控制器=什么改变控制器=“家庭”,“家庭2”你会全屏显示链接首页/指数和新的默认路由家庭2 /指数。 类似的适用,如果你有这些规定中的默认区域的路由。



Answer 3:

在你的global.asax.cs确保你有你此行Application_Start

AreaRegistration.RegisterAllAreas();

在每一个领域,你应该有AreaRegistration.cs是这样的:

public class testAreaRegistration : AreaRegistration
{
    public override string AreaName
    {
        get
        {
            return "test";
        }
    }

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "test_default",
            "test/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional }
        );
    }
}


Answer 4:

随着@ Html.ActionLink

使用这种格式

@Html.ActionLink("Authors", "Index", "Home", new { Area = "Author", registrationType = "Author" }, new{})

解决了我的问题。



Answer 5:

你碰巧在您的任何领域,从MvcContrib继承PortableAreaRegistration?

我们曾经有过完全一样的症状(在本地工作,而不是在服务器上),直到我们删除了所有来自移动领域的PortableAreaRegistrations,重新使用简单AreaRegistration因为MVC4可以在没有任何额外的库注册的便携式区域。



文章来源: What is wrong with my area routing in my bin deployed MVC4 app?