【发布时间】:2015-01-16 05:10:12
【问题描述】:
我有一个使用 shtml 页面的旧网站。我有一个项目要向这个站点添加动态功能——一个 MVC 应用程序,用户在其中上传文件,控制器生成电子邮件。
由于遗留原因,我无法重写该网站。我也没有网站管理员访问权限;我只能处理我所在地区的文件。我必须使用的路径是//host/foo/bar/baz。
根据this Stack Overflow question,我应该能够在baz目录内的原始静态页面中创建一个链接为<a href="Controller/Action">link text</a>。我试过了,在修复了应用程序的 web.config 文件的问题后,我收到了 404 错误。现在想想这确实是有道理的,因为baz 中没有名为Controller 的目录——只有bin、Views 等。找不到的物理路径是foo/bar/baz/Controller/Action。
有很多关于向 MVC 应用程序添加静态页面的文章和 Stack Overflow 问题,但我没有发现任何关于其他方向的讨论。
如何从静态 HTML 页面链接到 MVC 操作?
(当我尝试让应用运行时,我可能会有后续问题。)
编辑添加: 我尝试将 MVC 应用程序代码移动到网站的顶层(在我的开发环境中)。这次使用链接时,我在 IoC 文件中遇到了配置错误,实体框架的版本不匹配。这种方法可能很有前途,但也可能在操作环境中遇到权限问题。
另外,我没有对网络服务器文档区域的根级别的写入权限,只有我的子目录区域。
【问题讨论】:
-
您需要输入 MVC App 的 URL。如果在虚拟目录中的“内部”您的站点,您的 URL 将与您的站点相关。如果它被托管在其他地方,它应该是一个绝对 URL。在 MVC 站点中,您不依赖文件夹,定义了 Routes,因此可以使用格式“Host/YourMVCSite/Controller/Action”
-
它托管在我的站点中,但我无法设置虚拟目录。很遗憾,因为我认为这是一个很好的方法。现在不好的部分:我没有对服务器根目录的写权限。所以我可能不得不在其他地方托管应用程序。
标签: html asp.net-mvc web-deployment