3

我的网页已设置,因此当用户选择多个选项之一时,将出现许多超链接并将您带到该网页。为了使我的代码不那么 DRY,我创建了一个 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>
4

1 回答 1

1

您不能将服务器代码 (Razor) 与客户端代码 {{ 表达式 }} 一起使用,因此您必须解码 @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>
于 2015-08-27T17:43:22.150 回答