2009-02-17 72 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