当我添加基本标签时,MVC路由进入循环

时间:2017-02-15 15:46:54

标签: angularjs asp.net-mvc asp.net-mvc-routing

我想在我的mvc应用程序中集成angularjs路由...在这一刻我没有写过关于角度路由的代码......我刚刚添加了标签

<base href="/" />

我运行我的MVC应用程序......它已经停止工作了。

这是我如何配置我的MVC路由:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

我还有一个Services区域,路由以这种方式配置:

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

当我浏览该区域的网址时,应用程序会循环播放。

例如,当我导航/Servizi/Cpe时,调试会在Index的{​​{1}}操作中不断停止:

CpeController

这就是结果:

enter image description here

就像页面不止一次显示一样。

为什么呢?你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

我已经解决了...问题是在页面中我有一个jQuery选项卡...所以我将href设置为#

<div ......>
    <ul>
        <li><a href="#tab-models">Modelli</a></li>
        <li><a href="#tab-info">Info</a></li>
    </ul>

    <div id="tab-models">
        ...
    </div>

    <div id="tab-info">
        ...
    </div>
</div>

设置基本标记时,这些href会产生一些问题。在我短暂的经历中,我明白jQuery和angular通常不能很好地工作。 所以我更喜欢转向棱角分明的材料。我用角度材料选项卡替换了jQuery选项卡:

<div id="cpes" class="tabs" ng-cloak>
    <md-content>
        <md-tabs md-dynamic-height md-no-pagination>
            <md-tab label="Modelli">
                <md-content>
                    ...
                </md-content>
            </md-tab>
            <md-tab label="Info">
                <md-content>
                    ...
                </md-content>
            </md-tab>
        </md-tabs>
    </md-content>
</div>