2009-02-17 37 views
0

我正在使用Microsoft Ajax模板DataView将值绑定到模板。我能做到这一点,你会期望它的工作原理:在ASP.NET MVC中对数据视图值进行编码ActionLink

<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来被正确解析并添加到链接?

回答

0

终于得到它的工作,我不知道是否我太傻了,如果是缺少文件,但在这里是如何将数据视图值的链接绑定。

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

实际的URL路径的一部分需要在单引号,你需要使用SYS:HREF代替HREF。

0

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

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

当建立手动网址时,包含以避免应用程序名称和冲突网址问题的良好做法。

+0

当我添加Url.Action的URL结束为/ Restaurant3 其中3是正确的ID。也许我做错了。 – ddd 2009-02-18 10:47:09