Angular ng-include不适用于剃刀页面

时间:2015-11-08 07:39:53

标签: javascript angularjs asp.net-mvc razorengine

我使用了ng-include,如下所示。但它不起作用。你能告诉我为什么吗?提前谢谢。

createOrEditPropertyModal.cshtml

<div ng-include="'propertymanagement/tabs/createPropertyForm.html'"></div>

我也尝试过这种方式。但是404错误。

 <div ng-include="'tabs/createPropertyForm.html'"></div>

createPropertyForm.cshtml

<script type="text/ng-template" id="createPropertyForm.html">
    <form name="createPropertyForm" role="form">

       //removed for clarity

    </form>
</script>

Soloution Tree

enter image description here

注意:当我把它放在同一页面上然后它可以工作。但我怎么能以上述方式做到这一点? B&#39;我想将该代码放在单独的.cshtml文件中。

 <div ng-include="'createPropertyForm.html'"></div> //on same page where this works well

1 个答案:

答案 0 :(得分:10)

方法1:OP的回答

你可以这样做。这就是方法。你必须给出如下所示的完整路径。

<div ng-include="'~/App/tenant/views/propertymanagement/tabs/createPropertyForm.cshtml'"></div>

如果您遇到任何性能问题,请在此处查看:ng-Include is very slow with the external template

方法2:

您不能使用ng-include

包含.cshtml页面

对于它你必须使用正确的mvc路由,比如

   <div ng-include="'controller/Template/createPropertyForm'"></div>

这里createPropertyForm将像一个动作方法的id部分

    public ActionResult Template(string id)
     {
    switch (id.ToLower())
    {
        case "createPropertyForm":
            return PartialView("~/Views/propertymanagement/tabs/createPropertyForm.cshtml");

        default:
            throw new Exception("template not known");
    }
}

否则只需创建一个html页面并将其作为

进行访问
   <div ng-include="'createPropertyForm.html'"></div>