Asp.net mvc Asp.NETMVC在硬页面刷新上的应用

Asp.net mvc Asp.NETMVC在硬页面刷新上的应用,asp.net-mvc,angularjs,Asp.net Mvc,Angularjs,我刚刚开始研究angular js。我已将我的路线定义如下 app.config(["$routeProvider", "$locationProvider", function ($routeProvider, $locationProvider) { $routeProvider.when("/activityRegs", { templateUrl: "Controller/Action", controller: "activityCont

我刚刚开始研究angular js。我已将我的路线定义如下

app.config(["$routeProvider", "$locationProvider", function ($routeProvider, $locationProvider) {
    $routeProvider.when("/activityRegs",
    {
        templateUrl: "Controller/Action",
        controller: "activityController"
    });
    $routeProvider.when("/searchActivity",
    {
        templateUrl: "Controller/Action2",
        controller: "activityController"
    });
    $routeProvider.otherwise(
    {
        redirectTo: "/"
    });

这很有效。但如果我按F5硬刷新页面,它会给我资源找不到,这是很明显的。但我不确定如何处理这类错误。如果我在第2页,并且我点击了F5,那么我希望我的第2页被刷新,而不是出现任何错误。r

这个错误很可能发生,因为您的URL中有#标记。移除它。并确保在刷新页面时,通过MVC路由正确调用MVC操作。否则部分将由angular自己完成

比方说

我的MVC路由定义为HomeController和索引方法(默认设置)

我已经在index.cshtml中加载了ng视图/ui视图


现在,当我用f5刷新页面时,会调用“主”控制器和“索引”方法(默认设置)

刚刚发现您的templateUrl不提供纯HTML页面。是CSHTML吗?你必须参考这个链接,它肯定会解决你的问题。我只是用url路由名称配置了我的路由,并且总是使用默认的Home/Index,这对我来说很有效。routes.MapRoute(名称:“ActivityRegistration”、///路由名称url:“activityRegs”、///url-请求的url---shd与角度路由名称相同..默认值:new{controller=“Home”,action=“Index”,id=UrlParameter.Optional});