我正在使用一些第三方库,它使用razor语法来呈现用于客户端的gui'小部件'。看来这个库创建了一些div和javascript然后发送到客户端。但是,在尝试将其与Angular集成时会出现一些问题。如果我创建一个传统的MVC布局,在该布局中调用然后渲染视图的控制器,它会渲染得很好:
~/Views/MyEditor/MyPage.cshtml: (
@model ...
<div class="col-md-7">
@Html.{3RDPARtY}.Editor()
.Render()
</div>
此页面上的其他html元素由ng标签修饰,并且可用作Angular 1.x ng-route的模板。
角度路由控制器中的......
$routeProvider.when('/MyEditor' {
templateUrl: "~/Views/MyEditor/MyPage.cshtml"
controller: "..."
}
在这种情况下,当Angular路由加载此路由时,页面将返回所有角度标记完整并且作为角度应用程序正常运行。但是,我们发现第三方已加载不,并且未呈现它要生成的html和脚本。
如果我们将@ Html.3rdParty.Render()移动到主Index.cshtml,也就是默认情况下没有任何Angular路由的那个,那么渲染和运行正常。只有当角度路由器向该cshtml文件发出请求时,它才会被废弃。当路由器调用文件时,有没有办法让它正确渲染剃刀?
非常感谢任何帮助。谢谢。
答案 0 :(得分:0)
如果我正确阅读上面的代码并理解您的问题:
您在客户端脚本的路径中使用了波浪号~
- 波浪号~
仅适用于razor
(服务器端呈现)
此外,应该直接调用视图的controller
和不 cshtml
文件。
除非您在 MVC 应用程序中使用web.config
设置,否则无法直接调用(cs/vb) html
个文件(默认情况下受限制)。
<add key="webpages:Enabled" value="false"/>
WebPages
(一个使用Razor视图的轻量级Asp.Net网站)中,已启用(true
),您可以直接调用它们H个。