0

我正在使用 Microsoft Ajax Template DataView 将值绑定到模板。我可以做到这一点,它可以按您的预期工作:

<h3>{{ID}}</h3>
<p>{{Address}}</p>

但是,我正在尝试构建一个包含 ID 的操作链接。

<h2><%= Html.ActionLink(Html.AttributeEncode("{{Name}}"), "Index", "Restaurant", new { Id = Html.AttributeEncode("{{ID}}") }, null)%></h2>

名称显示为我想要的链接文本,但链接不包含 ID,而是包含 %7B%7BID%7D%7D

如何让 Id 被正确解析并添加到链接中?

4

3 回答 3

0

额外的括号可能会将其丢弃。尝试将值分配给变量并使用 ActionLink 中的变量。您可以在视图顶部进行分配,然后在整个视图中重用它们。避免在任何地方重新编码它们。

  <% var id = Html.AttributeEncode( "{{ID}}" );
     var name = Html.AttributeEncode( "{{Name}}" );
   %>
  <h2><%= Html.ActionLink(name, "Index", "Restaurant", new { Id = id }, null)%></h2>
于 2009-02-17T12:50:54.737 回答
0

终于让它工作了,我不知道我是不是很愚蠢,或者是否缺少文档,但这里是如何将 dataview 值绑定到链接。

 <h2><a sys:href="{{'Restaurant/Index/' + ID}}">{{Name}}</a></h2>

实际的 url 路由部分需要用单引号括起来,并且您需要使用 sys:href 而不是 href。

于 2009-02-17T15:17:04.993 回答
0

'<%= Url.Action("Index", "Restaurant")%>'在构建手动 url 以避免应用程序名称和冲突 url 出现问题时包含它的好习惯。

于 2009-02-17T21:37:43.003 回答