最简单的主页与ASP.. NET和AnjularJS

本文关键字:NET AnjularJS ASP 主页 最简单 | 更新日期: 2023-09-27 18:03:22

我想用AngularJS和ASP构建一个SPA。. NET Web API。至于前端网页,我想尽可能地限制asp.net的含义,把所有的逻辑都转移到Angular中,Web API唯一能提供的就是REST服务。我用一些角度创建了一个index.html页面,从服务器加载一个基本列表。

但是我的index.html是使用ex. http://localhost:1234/app/index.html访问的,我现在想要的是从http://localhost:1234/看到我的index.html,如果我从这个主机访问一些随机链接,也会得到一个自定义错误页面。

我需要ASP吗?NET做这个?我想限制ASP的使用。NET尽可能多,只需要基本的东西。我对这个完全是新手。

网络。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <clear />
      <add
          name="StaticFile"
          path="*" verb="*"
          modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule"
          resourceType="Either"
          requireAccess="Read" />
    </handlers>
    <staticContent>
      <mimeMap fileExtension=".*" mimeType="application/octet-stream" />
    </staticContent>
    <defaultDocument enabled="true">
      <files>
        <clear/>
        <add value="index.html"/>
      </files>
    </defaultDocument>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

还添加了路由:

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("");
            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
                );
        }

页面错误:

Server Error in '/' Application.
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. 
Requested URL: /

最简单的主页与ASP.. NET和AnjularJS

angular只在客户端做路由,对于你的url需求,你仍然需要在服务器端做一些配置。

这个应该可以做到:

添加到web.config:

<system.webServer>
<defaultDocument>
  <files>
    <clear/>
    <add value="(location of index.html)"/>
  </files>
</defaultDocument>

对于错误(404是其中之一),可以在这里找到答案。只有当有人试图在加载angular之前获取一个不存在的url时才会出现这种情况。

但是一旦angular被加载,你就可以在config中做所有的事情,在这里你可以配置$routeProvider:

$routeProvider.when('/someUrl', {templateUrl: 'url/templatefile.html', controller: 'templateController'})
              .when('/my404route', {templateUrl: 'url/my404file.html', controller: 'my404Controller'})
              //when returns $routeprovider so you can chain "whens"
              //finnaly add "otherwise"
              .otherwise({redirectTo: '/my404route'});
              //or just route to root with '/' if you won't handle unknown routes

默认情况下visual studio将站点部署在子文件夹中。要更改它,右键单击您的web项目文件/属性。然后在Web选项卡中指定项目url为http://localhost:1234