我正在使用Microsoft MVC3开发一个网站,并在默认的MVC3应用程序模板上构建它。它访问外部数据库并在localhost上工作。
我已经将它部署到我从storminternet通过发布工具使用ftp方法租用的共享服务器(storminternet还不支持web部署),并且运行良好。它可以访问数据库,并获得请求正常工作。
但是,任何通过POST协议提交的表单都会返回找不到页面的错误404(这是我已声明[HttpPost]的操作)。
Storm互联网向我保证默认允许POST和GET,并且由于帮助台不是开发人员,我不确定该向谁求助。我对web.config没有很好的理解,虽然我可以阅读和理解xml并通过阅读和谷歌搜索看看发生了什么。我已经尝试将协议添加到root web.config中,我想我可能正在咆哮错误的树。
有没有其他人有这个问题,或者有人知道如何帮助我?
为了复制我的错误,我的网站就在这里...... 213.229.125.117/$sitepreview/ase-limited.com/Dev(对不起它不是蓝色。美元被解析为%的东西)
和POST请求的最快路线是点击左侧顶部的“添加建筑物”,然后点击对话框顶部的“保存”。
我们将非常感激地提供任何帮助。我已经坚持了几天没有运气。
最诚挚的问候 尼克
STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS -
结果是sitepreview的一个已知问题。切换到正确的域排序一切。
答案 0 :(得分:1)
我注意到在执行AJAX请求时有一些404 javascript错误。例如,您有一个请求:
http://213.229.125.117/$sitepreview/ase-limited.com/BuildingManager/Employees/2
而不是:
http://213.229.125.117/$sitepreview/ase-limited.com/Dev/BuildingManager/Employees/2
注意/Dev
如何丢失。那是因为在你的javascripts中你已经硬编码你的网址,而不是使用网址助手来生成它们。例如,你写了这样的东西:
$.ajax({
url: '/BuildingManager/Employees/2',
....
});
在localhost上工作正常,因为您没有虚拟目录名,但在服务器上部署时不起作用,因为现在正确的路径是:
$.ajax({
url: '/Dev/BuildingManager/Employees/2',
....
});
出于这个原因,你绝对不应该像这样对网址进行硬编码。
当我尝试将帖子张贴到试图发布到http://213.229.125.117/Dev/BuildingManager/SaveBuilding时,这似乎是一个非常奇怪的网址,因为它缺少整个开头。再一次:永远不要硬编码网址。始终使用网址助手。