AngularJS使用表达式作为href

时间:2015-08-18 14:10:59

标签: c# html angularjs razor angularjs-ng-href

我的网页已设置,因此当用户选择多个选项中的一个时,会出现许多超链接并将您带到该网页。为了减少我的代码干,我创建了一个ng-repeat div来输出用户的所有选项。所有超链接都正确显示在页面上,但链接本身已被破坏,因为href不会使用其中的表达式。

<div style="text-align:center" ng-repeat="page in pages">
    <a href='@Url.Action("{{ page.name }}", "Dashboards")'>{{ page.name }}</a>
</div>

我尝试用ng-href替换href,因为它可以帮助表达式在HTML更改页面之前得到处理但是没有效果。然后我删除了表达式周围的花括号和引号,因为在表达式中你不应该需要它们。但是代码现在有一个错误,因此它不会运行。这就是我们单独创建每个页面时的样子:

<a href="@Url.Action("ReviewAndAdjust", "Dashboards")">ReviewAndAdjust</a>
<a href="@Url.Action("Maps", "Dashboards")">Maps</a>

1 个答案:

答案 0 :(得分:1)

您无法将服务器代码(Razor)与客户端代码{{expression}}一起使用,因此您必须对@ Url.Action进行解码才能对其进行处理。你必须创建一个url变量,以便它可以工作

@{
  var url = Url.Action("{{ page.name }}", "Dashboards");
  url = url = HttpUtility.UrlDecode(url);
}


<div style="text-align:center" ng-repeat="page in pages">
    <a ng-href="@url">{{ page.name }}</a>
</div>