我无法让templateUrl工作

时间:2015-07-30 17:22:01

标签: asp.net asp.net-mvc angularjs angular-ui-router angularjs-routing

我是Angular的新手,我在ASP.NET MVC 4中使用Angular-UI-Router。

app.config(['$urlRouterProvider', '$stateProvider', function ($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise('/');

$stateProvider
    .state('about', {
        url: '/',
        template: 'HELLO WORLD'
    });
}]);

这很好用。 HELLO WORLD正在展示,所以我知道一切都设置得非常正确。

但是当我尝试使用templateUrl而不是模板时说:

app.config(['$urlRouterProvider', '$stateProvider', function ($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise('/');  //if you go to incorrect url it'll go back to home

$stateProvider
    .state('about', {
        url: '/',
        templateUrl: 'Home/About.html'
    });
}]);
没有任何显示。我从头开始使用几乎干净的平板默认模板..选择" Internet Application"来自默认模板..在我的目录中我有

观看次数 - >首页 - > About.html

我也有About.cshtml,我已经尝试过了,但它既没有工作也没有。求救!

1 个答案:

答案 0 :(得分:2)

ASP.NET MVC Views不允许直接访问它的.html个文件。您需要通过在web.config

中添加处理程序来允许system.webServer的访问权限

<强>代码

<system.webServer>
<handlers>
  <add name="JavaScriptHandler" path="*.js" verb="*"
     preCondition="integratedMode" type="System.Web.StaticFileHandler" />      
  <add name="HtmlScriptHandler" path="*.html" verb="*"
     preCondition="integratedMode" type="System.Web.StaticFileHandler" />
  <remove name="BlockViewHandler"/>
  <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>

或者反过来说,您可以创建一个除Views之外的新静态文件夹,其中包含html个文件。您可以直接访问URL例如。 static/about.html

有关详细信息,请参阅this Answer