当前位置 : 主页 > 网络编程 > ASP >

asp.net – 在mvc网站中设置基本标记中的url路径的不同方法

来源:互联网 收集:自由互联 发布时间:2021-06-24
嗨,我只是在我的MVC网站上传递这样的网址: base href="http:4546//localhost/" / 它在本地工作,但如果我在ISS上托管它.这个网址会产生问题. 如果我在这个网址中删除4546: http://localhost/Home/Con
嗨,我只是在我的MVC网站上传递这样的网址:

<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.

这将解决您在代码中的每个位置写入的问题.

网友评论