C# CodeBehind中的操作链接,与当前请求上下文无关
正在尝试编写帮助器方法以在代码隐藏中生成actionlinkC# 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
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");