在我的 MVC视图中使用下面的方法我得到的网址类似于" localhost:54871/Home/Index
"但我不想要"索引"在最后。它应该只是" localhost:54871/Home
"。我该如何实现呢?
@(Request.Url.AbsoluteUri)
感谢您的帮助!
答案 0 :(得分:0)
您可以尝试以下方法。
例如,如果带参数的网址如下所示
http://localhost:61221/Websitetest/Default1.aspx?QueryString1=1&QueryString2=2
然后使用以下代码,您可以获得结果
HttpContext.Current.Request.Url.Host
HttpContext.Current.Request.Url.Authority
HttpContext.Current.Request.Url.Port
HttpContext.Current.Request.Url.AbsolutePath
HttpContext.Current.Request.ApplicationPath
HttpContext.Current.Request.Url.AbsoluteUri
HttpContext.Current.Request.Url.PathAndQuery
将提供如下输出
<强>输出强>
localhost
localhost:61221
61221
/Websitetest/Default1.aspx
/Websitetest
http://localhost:61221/Websitetest/Default1.aspx?QueryString1=1&QueryString1=2
/Websitetest/Default1.aspx?QueryString1=1&QueryString2=2
答案 1 :(得分:0)
使用Request.Url.AbsoluteUri
时,网址会根据用户的当前页面进行更改。
如果用户访问http://localhost:0000/Home/
,则AbsoluteUri
为http://localhost:0000/Home/
如果用户访问http://localhost:0000/Home/Index
,则AbsoluteUri
为http://localhost:0000/Home/Index
在MVC
url生成基于RouteConfig.cs
文件中定义的路由定义。
还有另一种解决方案如下:
@{
Uri uriAddress = new Uri(Request.Url.AbsoluteUri);
string urlLeftPart = uriAddress.GetLeftPart(UriPartial.Authority);
string controllerName = HttpContext.Current.Request.RequestContext.RouteData.
Values["controller"].ToString();
string finalURL = urlLeftPart + "/" + controllerName;
}
<a href="@finalURL">Url Without Action Name</a>
参考