Angularjs 在MVC5项目中使用角度指令模板url中的html文件

Angularjs 在MVC5项目中使用角度指令模板url中的html文件,angularjs,asp.net-mvc,razor,Angularjs,Asp.net Mvc,Razor,我正在MVC5中创建一个angularJs应用程序。我已经创建了一个如下所示的指令 app.directive('clusterButton', function () { return { restrict: 'E', scope: { clusterInfo: '=info' }, templateUrl: function(elem, attr){ return 'Clu

我正在MVC5中创建一个angularJs应用程序。我已经创建了一个如下所示的指令

app.directive('clusterButton', function () {
    return {
        restrict: 'E',
        scope: {
            clusterInfo: '=info'
        },
        templateUrl: function(elem, attr){
            return 'ClusterButtonTemplate';
        }
    };
});
我有一个名为clusterbuttonemplate.cshtml的.cshtml文件,我在控制器类中创建了一个partial view方法来返回这个视图。因此angular js指令正在绑定模板

我需要删除mvc控制器类中的方法,并需要直接引用模板文件。我不想使用cshtml文件。我需要一个模板的html文件。我已经创建了一个ClusterButtonTemplate.html文件。但是,在如下设置模板时,浏览器显示404错误


我没有在我的项目中使用angular js路由。一切都使用MVC路由进行管理。如何解决此问题。我需要使用角度布线和MVC布线吗?

您可以尝试使用前导斜杠,因为它是使用相对路径加载的

        templateUrl: function(elem, attr){
            return '/ClusterButtonTemplate.html';
    }

您需要放置一个MVC不会尝试将URL映射到控制器的位置。默认情况下,/Content文件夹被忽略,因此您可以在其下创建一个名为Templates的文件夹,并将其用作URL

templateUrl: function(elem, attr){
    return '/Content/Templates/ClusterButtonTemplate.html';

那很简单!只需将一个html文件模板作为内容放在您喜欢的文件夹中,即app/phone list/项目根目录中,然后分配

templateUrl: '/app/phone-list/phone-list.template.html'
到控制器templateUrl属性。
避免视图、模型或控制器文件夹…

您可以通过将路径放在URL上直接加载html文件吗?您也可以使用fiddler检查html文件的实际加载路径。谢谢您的回复。它不起作用。我得到一个404未找到的异常。该文件位于Views/Home/clusterbuttonemplate.html中。我尝试了所有可能的途径。但问题并没有解决。我认为这个问题是由于AngularJS和MVC路由冲突造成的。但我不知道怎么解决这个问题。这就是为什么它不工作,因为它位于视图/主位置。将您的url更改为“/Views/Home/clusterbuttonemplate.htmlhanks”,在尝试了其他线程中提供的100个其他选项后保存了我。即将就此提出一个新问题:
templateUrl: '/app/phone-list/phone-list.template.html'