加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – ASP.NET MVC 4中的单页面应用程序路由

发布时间:2020-12-16 07:34:19 所属栏目:asp.Net 来源:网络整理
导读:我正在使用asp.net net mvc4和 javascript构建单页面应用程序. 我的javascript有它自己的路由引擎,所以我希望根据javascript处理root下的所有路由,并且api下的所有路由都由服务器端处理.即: / --- javascript handles /api --- ASP.NET MVC handles 但是,我
我正在使用asp.net net mvc4和 javascript构建单页面应用程序.

我的javascript有它自己的路由引擎,所以我希望根据javascript处理root下的所有路由,并且api下的所有路由都由服务器端处理.即:

/             <--- javascript handles 
/api          <--- ASP.NET MVC handles

但是,我不知道如何告诉ASP.NET MVC不处理这些路由,到目前为止我尝试的甚至没有运行:

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

        routes.MapRoute(
            name: "API",url: "api/{controller}/{action}/{id}",defaults: new { controller = "Tasks",id = UrlParameter.Optional }
        );

欢迎任何想法,谢谢!

解决方法

除非使用catch-all参数,否则路径URL中不存在参数的默认值.您还需要首先创建API路由,以避免被catch-all路由消耗.

routes.MapRoute(
    name: "API",defaults: new { controller="Tasks",action="Index",id=UrlParameter.Optional }
);

routes.MapRoute(
    "Default",// Route name
    "{*catchall}",// URL with parameters
    new { controller = "Home",action = "Index" } // Parameter defaults
);

更新:我应该提一下,在这种情况下,.NET MVC仍会将任何不匹配“API”的请求转发到“Home / Index”,在您的情况下,它应该提供客户端MVC框架的入口点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读