簡體   English   中英

如何動態覆蓋Html.ActionLink生成的URL?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM