我怀疑以下是什么:
当我使用以下代码时:
@(Html.ActionLink("Click Me", "ACTION", new {QueryName = ViewBag.QueryName}))
我会得到这样的HTML输出: < a href =“http:// localhost / ControllerName / ACTION?QueryName = 098”>点击我< / a>
好的,但如果我想将以下内容作为HTML输出呢?
< span>我只想要动作链接http://localhost/ControllerName/ACTION?QueryName=098的“href”部分,而不是“a”标记< / span>
我是否必须为其编写扩展程序,或者我是否有一些预先存在的规定来执行此操作?
我希望我足够清楚。
由于
更新
到目前为止,我写了一个扩展名,这显然不是最好的方法,正如您在下面所见,但我需要它:
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));
}
}
在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>
答案 0 :(得分:4)
您可以使用Url.Action
,如下所示:
@Url.Action("Action", new { QueryName = ViewBag.QueryName })
或者如果您需要完全限定的网址:
@Url.Action("Action", "Controller", new { QueryName = ViewBag.QueryName }, "http")