是否可以像这样在Razor语法中使用AngularJS变量作为路径参数?
<tr data-ng-repeat="job in jobs">
<td>
<a href="@Url.RouteUrl("editJob", new { id = job.JobID })">
<i class="glyphicon glyphicon-edit" style="color:#808080"></i>
</a>
</td>
</tr>
现在我正在使用它。
<a href='@Url.Content("~/job/edit/"){{job.JobId}}'>
答案 0 :(得分:4)
我会说不,因为Razor是渲染服务器端的,那时Angular变量不存在。含义new { id = job.jobID }
将导致{ id : null }
。
你的第二个解决方案正在运行,因为角度字符串在Razor部分结束后立即连接。
答案 1 :(得分:1)
我推荐两种解决方案,因为混合多个模板总是有点危险。我们团队解决这个问题的方式是
有点像这样(伪代码,使用ng-init的例子)
<div ng-app="..." ng-init="config = { rootUrl: '@Url.Content("~/job/edit/")', otherValue: ''}">
<a href="{{config.rootUrl + job.JobId}}">...</a>
</div>