C# 通过控制器/操作/路由值组合显示MVC URL路径

C# 通过控制器/操作/路由值组合显示MVC URL路径,c#,asp.net-mvc,asp.net-mvc-3,extension-methods,C#,Asp.net Mvc,Asp.net Mvc 3,Extension Methods,我有以下疑问: 当我使用以下代码时: @(Html.ActionLink("Click Me", "ACTION", new {QueryName = ViewBag.QueryName})) 我将得到如下HTML输出: 好的,但是如果我想将以下内容作为HTML输出呢 我只想要动作链接的“href”部分,没有“a”标记 我是否必须为它编写一个扩展,或者我是否有一些预先存在的条款来执行它 我希望我说得够清楚了 谢谢 更新 到目前为止,我编写了一个扩展,这显然不是最好的方法,正如您在下面看到的,

我有以下疑问:

当我使用以下代码时:

@(Html.ActionLink("Click Me", "ACTION", new {QueryName = ViewBag.QueryName}))
我将得到如下HTML输出:

好的,但是如果我想将以下内容作为HTML输出呢

我只想要动作链接的“href”部分,没有“a”标记

我是否必须为它编写一个扩展,或者我是否有一些预先存在的条款来执行它

我希望我说得够清楚了

谢谢

更新

到目前为止,我编写了一个扩展,这显然不是最好的方法,正如您在下面看到的,但我需要它:

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));
    }
}
公共静态类ActionURLPathExtension
{
公共静态MvcHtmlString ActionURLPath(此HtmlHelper帮助程序、字符串ActionName、字符串控制器名称、对象RouteValue)
{
string resultURL=LinkExtensions.ActionLink(helper,”,ActionName,ControllerName,RouteValue,new object()).ToHtmlString();
resultURL=resultURL.Replace(“,”).Replace(“,”).Trim();
返回MvcHtmlString.Create(helper.ViewContext.HttpContext.Server.UrlDecode(resultur));
}
}
在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>
现在您可以在地址栏中粘贴此URL:@(Html.ActionURLPath(“CarregarFiltros”,“Filtros”,new{QueryId=“%0”,noCache=new Random().Next(01989)}))

您可以使用
Url.Action
,如下所示:

@Url.Action("Action", new { QueryName = ViewBag.QueryName })
或者,如果您需要完全限定的URL:

@Url.Action("Action", "Controller", new { QueryName = ViewBag.QueryName }, "http")

嘿,克,谢谢。但不幸的是,此代码会触发指定的操作。我创建了一个视图来演示所需的HTML输出结果,我将编辑原始问题。@ClayKaboom:这个答案是正确的。Action返回匹配操作的Url字符串。看@gram,的确如此。我以前试过,但我没有注意到我使用的是Html.Action而不是Url.Action。谢谢