没有SPA的AngularJS和使用ASP.NET MVC路由

时间:2014-03-14 10:02:23

标签: asp.net-mvc angularjs

我想将AngularJS非SPA用于我的网站以及ASP.NET MVC。身份验证通过Active Directory进行,因此我发现最好使用ASP.NET MVC进行路由和身份验证/授权。

所以我想做的是创建一个包含ng-app定义的_Layout.cshtml页面,然后从_Layout.cshtml派生的每个视图都包含ng-controller定义。

对于RESTful数据处理,我会使用ASP.NET Web API。

我能想到的唯一问题是URL查询字符串参数。如果我想查看ID特定的某些记录,我总是必须将ID放在ASP.NET {1}}的ASP.NET MVC控制器中,并在这样的视图中获取它:

ViewBag

有更好的方法吗?请说清楚。 :)

1 个答案:

答案 0 :(得分:3)

更新答案:

由于您未使用Angularjs路由,因此可以使用ngInit。它将在您控制器的范围内初始化一个新变量,您将能够像以下一样访问它:

HTML(在您的控制器内):

<AnyElement ng-init="roomID = @ViewBag.roomID"></AnyElement>

JavaScript的:

var roomID = $scope.roomID;

有关详细说明,请参阅ngInit documentation

原始答案:

在Angularjs中,您可以非常轻松地访问查询字符串参数,如:

var paramValue = $routeParams.yourParameterName;

或者,如果您要初始化JavaScript变量,请考虑使用ngInit。它将在您控制器的范围内初始化一个新变量,您将能够像以下一样访问它:

HTML(在您的控制器内):

<AnyElement ng-init="roomID = @ViewBag.roomID"></AnyElement>

JavaScript的:

var roomID = $scope.roomID;

有关详细说明,请参阅ngInit documentation

希望有所帮助。