C# CodeBehind中的操作链接,与当前请求上下文无关

C# CodeBehind中的操作链接,与当前请求上下文无关,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,正在尝试编写帮助器方法以在代码隐藏中生成actionlink public static String CodeBehindActionLink(UrlHelper url, String actionloction,string actiontext) { var linkBuilder = new TagBuilder("a"); linkBuilder.MergeAttribute("href", url.Action(ac

正在尝试编写帮助器方法以在代码隐藏中生成actionlink

public static String CodeBehindActionLink(UrlHelper url, String actionloction,string actiontext)
        {
            var linkBuilder = new TagBuilder("a");

            linkBuilder.MergeAttribute("href", url.Action(actionloction)); //url is culprit here

            linkBuilder.SetInnerText(actiontext);

            return linkBuilder.ToString();
        }
被叫

预期的结果是这样的

但当前的上下文在锚中附加了不必要的路径。如果它在相同的上下文中,那么锚定标记是类似的

我们怎样才能超越这种行为

找到的解决方案:不需要传递请求上下文。仅传递操作位置

callee看起来像

CodeBehindActionLink(
        Url.Action("A", "B", new { area = "C"}),"SomeName");

原因Url。操作已经处理了确切的路由。

@JitendraPancholi请求上下文。为什么要创建此帮助器方法?Action也在为您做同样的工作。有什么具体原因吗?您已经提供了问题的解决方案。我需要codebehind中的锚定HTML片段来传递视图。哪个Url.Action不会给出。
linkBuilder.MergeAttribute("href", actionloction); 
CodeBehindActionLink(
        Url.Action("A", "B", new { area = "C"}),"SomeName");