3
我有一個疑問,這是以下幾點:顯示MVC URL路徑通過控制器/動作/ RouteValues組合
當我使用下面的代碼:
@(Html.ActionLink("Click Me", "ACTION", new {QueryName = ViewBag.QueryName}))
我會得到一個HTML的輸出是這樣的: < A HREF = 「HTTP://本地主機/ ControllerName/ACTION QueryName = 098」 >點擊我</A >
好,但世界衛生大會如果我想將以下內容作爲HTML輸出?
<跨度>我想跳轉鏈接http://localhost/ControllerName/ACTION?QueryName=098的只是「HREF」的一部分,而「一」的標籤</SPAN >
我必須爲它編寫的擴展還是我一些先前的條款做到這一點?
我希望我已經夠清楚了。
感謝
UPDATE
到目前爲止,我寫了一個擴展,這顯然是不做到這一點的最好辦法,因爲你可以看到下面,但我需要它:
public static class ActionURLPathExtension
{
public static MvcHtmlString ActionURLPath(this HtmlHelper helper , string ActionName, string ControllerName, object RouteValues)
{
string resultURL=LinkExtensions.ActionLink(helper," ",ActionName,ControllerName, RouteValues, new object()).ToHtmlString();
resultURL= resultURL.Replace("</a>","") .Replace("<a href=\"","") .Replace("\">","").Trim() ;
return MvcHtmlString.Create(helper.ViewContext.HttpContext.Server.UrlDecode(resultURL));
}
}
在我用這樣的HTML:
<span>Now you can paste this URL in your address bar : @(Html.ActionURLPath("CarregarFiltros", "Filtros", new { QueryId = "%0" , noCache = new Random().Next(0,1989) }))</span>
嘿克,謝謝。但不幸的是,這段代碼觸發了指定的操作。我創建了一個視圖來演示什麼是所需的HTML輸出結果,我將編輯原始問題。 – ClayKaboom
@ClayKaboom:這個答案是正確的。 Url.Action返回匹配動作的url字符串。見http://geekswithblogs.net/liammclennan/archive/2008/05/21/122298.aspx –
@gram,確實如此。我已經嘗試過,但我沒有注意到我使用Html.Action而不是Url.Action。謝謝! – ClayKaboom