嗨,我只是在我的MVC网站上传递这样的网址: base href="http:4546//localhost/" / 它在本地工作,但如果我在ISS上托管它.这个网址会产生问题. 如果我在这个网址中删除4546: http://localhost/Home/Con
<base href="http:4546//localhost/" />
它在本地工作,但如果我在ISS上托管它.这个网址会产生问题.
如果我在这个网址中删除4546:
http://localhost/Home/Contact
然后它的工作.
我通过删除代码中的端口号尝试了它,但仍然在url端口号显示自己.
我如何删除端口号或将是什么方式,以便我可以在公共端口号80上托管它?
请让我知道我缺少的地方.
谢谢
您可以创建一个基本控制器并添加此方法protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); var request = HttpContext.Request; var baseUrl = string.Format("{0}://{1}{2}", request.Url.Scheme, request.Url.Authority, HttpRuntime.AppDomainAppVirtualPath == "/" ? "" : HttpRuntime.AppDomainAppVirtualPath); ViewBag.BasePath = baseUrl; }
将始终在每个请求上调用此方法OnActionExecuting,并在您的代码中使用此viewbag.
这将解决您在代码中的每个位置写入的问题.