[英]How can I use Url.Action and Html.ActionLink when my application is pointed somewhere else?
[英]How can I dynamically override the URL generated by Html.ActionLink?
我在現有的ASP.NET MVC網站中實現了一個小實用程序,允許用戶覆蓋任何頁面的當前HTML標題,元描述和friendly-url(包括帶有查詢字符串的動態頁面等)。 這非常有效 - 直接訪問友好網址時一切都很好。
我希望能夠做的是覆蓋Html.ActionLink的默認行為,以便我可以檢查是否已為請求的操作創建了友好的URL,如果是,則返回友好的URL代替自動生成的URL。
我環顧四周,找不到任何具體的東西。 我知道我可以實現一個新的HtmlHelper並自己執行此操作,但如果可能的話,我想覆蓋現有的行為,而不是必須修改所有當前視圖。
有人能幫忙嗎?
我不認為你可以覆蓋它自己的動作鏈接,但你可以創建一個擴展方法並使用它代替actionlink助手
using System.Web.Mvc;
using System.Web.Mvc.Html;
public static class HtmlHelperExtensions
{
public static MvcHtmlString CustomActionLink(this HtmlHelper Helper, string LinkText, string ActionName)
{
string link = getCustomName();
if(!String.IsNullOrWhiteSpace(link))
{
return link
}
return helper.ActionLink(LinkText, ActionName);
}
}
然后在您的視圖中,您可以使用@ Html.CustomActionLink替換@ Html.ActionLink。 您必須將命名空間添加到每個視圖的頂部,不要將其放在命名空間中,或將其添加到配置文件中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.