如何应对使用MVC路由IIS副应用?(How to deal with IIS sub applic

2019-09-16 19:06发布

我有一个已被移动到一个子文件夹中的wwwroot的MVC应用程序,而这个子文件已经取得通过IIS应用程序。 因此而URL到我的登录页面看起来像在此之前:

www.mydomain.com/login

现在看起来是这样的:

www.mydomain.com/application/login

该应用程序工作正常,但似乎并没有影响到路由或任何在我的应用程序的链接。 但是,它是造成我在哪里引用图片src的,像这样的问题:

<img src="/content/images/myimage.png"/>

由于它是试图检索从URL www.mydomain.com/content/images/myimage.png这显然会返回一个404的图像。

在我的Global.asax文件我只使用默认路由,这是我尝试修改考虑的子文件夹作为URL的一部分:

routes.MapRoute("Default",
                "application/{controller}/{action}/{id}",
                new { controller = "dashboard", action = "index", id = UrlParameter.Optional });

然而,现在,当我试图去根URL www.mydomain.com/application我只是得到一个目录列表! 如果我尝试直接去控制器即www.mydomain.com/application/dashboard我得到了404!

任何人有任何想法如何应对通过MVC路由这种情况呢?

Answer 1:

  1. 你不需要改变你的路由。 它从入口点工作到您的应用程序。
  2. 使用@ Url.Content( “〜/内容/图像/ myimage.png”)。

希望这会有所帮助。



Answer 2:

试试这个...

routes.MapRoute("Application",
                "application/{controller}/{action}/{id}",
                new { controller = "dashboard", action = "index", id = UrlParameter.Optional });

routes.MapRoute("Default",
                "{controller}/{action}/{id}",
                new { controller = "dashboard", action = "index", id = UrlParameter.Optional });


文章来源: How to deal with IIS sub applications using MVC routing?