how to get full servername and port running in mvc 2 by codebehind
嗨,每个人我都有一个问题
例如,如果我有URL:http://localhost:8512/bookuser/create
如何在MVC2中通过代码隐藏获得"http://localhost:8512"??
谢谢
下面将为您提供请求的协议、主机和端口部分
1 | Request.Url.GetLeftPart(UriPartial.Authority) |
在MVC3中,最直接的方法是这样做(应该是完全相同的):在.cs中,可以使用如下代码:
1 2 3 4 5 6 7 8 | Uri uri = HttpContext.Current.Request.Url; String absoluteUrlBase = String.Format( "{0}://{1}{2}{3}" uri.Scheme, uri.Host, (uri.IsDefaultPort ?"" : String.Format(":{0}", uri.Port)); |
在a.cshtml中,可以使用
1 2 3 4 5 6 7 | string absoluteUrlBase = String.Format( "{0}://{1}{2}{3}" Request.Url.Scheme Request.Url.Host + (Request.Url.IsDefaultPort ?"" : String.Format(":{0}", Request.Url.Port)); |
在这两种情况下,
或者你可以通过巫术师的链接…
尝试:
这包含有关正在请求的页面的信息。
另外,保留此链接以备将来参考
在"http://"后面查找第一个"/"-这是一段代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public class SName { private String absUrlStr; private final static String slash ="/", htMarker ="http://"; public SName (String s) throws Exception { if (s.startsWith (htMarker)) { int slIndex = s.substring(htMarker.length()).indexOf(slash); absUrlStr = (slIndex < 0) ? s : s.substring (0, slIndex + htMarker.length()); } else { throw new Exception ("[SName] Invalid URL:" + s); }} public String toString () { return"[SName:" + absUrlStr +"]"; } public static void main (String[] args) { try { System.out.println (new SName ("http://localhost:8512/bookuser/Create")); } catch (Exception ex) { ex.printStackTrace(); }}} |