2

我有一个由 Asp.Net MVC 页面松散包装的 AngularJS 应用程序。AngularJS 的东西忽略了 Asp.Net 并执行自己的路由、ng-includes 等,因此页面是由 Asp.Net 不知道的 html 部分构造的。

我遇到了这样一种情况,在我的一个页面中拥有一个 Asp.Net 控件/MVC 扩展非常有用,但是这些页面在 Angular 领域很深。是否有任何实用的方法可以在不重组整个应用程序的情况下使其正常工作?

这就是我想要完成的事情:

索引.cshtml:

<body ng-app="App" ng-controller="Controller">
    <div ng-include src="angularView.html">

角视图.html:

<div ng-include src="aspNetView.cshtml">

aspNetView.cshtml:

@Html.Something()

显然,ng-include aspNetView.cshtml 不起作用,但这就是我想要做的:Angular 东西中的 Asp.Net 东西。

(我的具体用例是尝试使用 放入 DevExpress 网格@Html.DevExpress().GridView(...),但问题仍然很普遍)

4

2 回答 2

1

您可以从 ASP.Net MVC 控制器返回部分视图,然后从 angular 调用该方法并在 div 或其他容器中呈现返回的 HTML。

如果这只是显示数据,它应该没有什么问题(它只是一个 ajax 调用,就像任何其他的一样)。如果呈现的 HTML 必须与页面的其余部分交互(例如,角度 $scope 等),它可能会更复杂。

于 2013-10-21T01:46:11.193 回答
0

要使用 AngularJS 在 asp.net mvc5 中调用局部视图,请这样写:

<ng-include src="'@Url.Action("method_name", "Controller_name")'"></ng-include>

还要记住你的控制器方法必须以这种方式返回:

return PartialView("~/Views/Angular/TableAdd.cshtml");
于 2015-02-26T04:04:08.650 回答