C#MVC 5,RouteJs返回HTML而不是JS

时间:2015-04-29 12:30:53

标签: javascript c# asp.net-mvc-5 scriptresource.axd

我通过NuGet安装了RouteJS for MVC 5并按照安装说明进行操作,但尝试加载<script src='/routejs.axd/251810a87f19ffe842a619acc9a90d73349ba4fa/router.js'></script>时会返回_Layout.cshtml的内容和200的状态。

我正在运行MVC 5,C#和IIS Express 8.我已经尝试了在GitHub / NuGet网站上找到的Web.config的新变种。如果我使用区域,是否需要其他配置?

#_Layout.cshtml
#This works
<script src="@RouteJs.RouteJsHandler.HandlerUrl"></script>

#Web.config
<configSections>
    <section name="routeJs" type="RouteJs.RouteJsConfigurationSection, RouteJs" />
</configSections>

#This section by itself will break the application.
#Added the 'validation' line to system.webServer to prevent an error
#I've tried running RouteJS with and without this section.
<system.web>
    <httpHandlers>
        <add verb="GET" path="routejs.axd" type="RouteJs.RouteJsHandler, RouteJs" />
    </httpHandlers>
</system.web>

<system.webServer>
    <handlers>
        <validation validateIntegratedModeConfiguration="false"/>
        <add name="RouteJs" verb="GET" path="routejs.axd" type="RouteJs.RouteJsHandler, RouteJs" />
    </handlers>
</system.webServer>

<routeJs exposeAllRoutes="true" />

#RegisterRoutes
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

1 个答案:

答案 0 :(得分:0)

您必须为该区域声明此类代码才能添加路线:

public class AdminAreaRegistration : AreaRegistration
    {
        public override string AreaName
        {
            get
            {
                return "Admin";
            }
        }

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