编程语言
首页 > 编程语言> > c#-通过Controller / Action / RouteValues组合显示MVC URL路径

c#-通过Controller / Action / RouteValues组合显示MVC URL路径

作者:互联网

我有以下疑问:

当我使用以下代码时:

@(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>

解决方法:

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

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

或者,如果您需要标准网址:

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

标签:extension-methods,c,asp-net-mvc,asp-net-mvc-3
来源: https://codeday.me/bug/20191102/1991582.html