我正在开发一个网站使用微软MVC3,并已建立在默认的MVC3应用程序模板。它访问外部数据库并在本地主机上工作。
我已经使用ftp方法(storminternet还不支持web部署)通过发布工具将它部署到我从storminternet租用的共享服务器上,并且运行良好。它可以很好地访问数据库,get请求也能正常工作。
但是,通过POST协议提交的任何表单都会返回page not found错误404 (这是在我断言HttpPost的操作上)。
Storm internet向我保证,默认情况下POST和GET是允许的,而且由于帮助台不是开发人员,我不确定该向谁求助。我对web.config的理解不是很好,尽管我可以阅读和理解xml,并通过通读和谷歌搜索来了解正在发生的事情。我曾尝试将协议添加到根web.config中,但我认为我可能找错了地方。
有没有其他人有这个问题,或者有人知道如何帮助我?
为了重复我的错误,我的网站在这里...213.229.125.117/$sitepreview/ase-limited.com/Dev (对不起,它不是蓝色的。美元被解析为%某物)
到达POST请求的最快路径是单击左侧顶部的“Add Building”,然后单击对话框顶部的“Save”。
我们将非常感谢您的帮助。我已经被困在这个问题上好几天了,运气不好。
向尼克致以最好的问候
事实证明这是sitepreview的一个已知问题。切换到适当的域可以对所有内容进行排序。
发布于 2012-03-15 23:40:44
我注意到在执行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中,您已经对url进行了硬编码,而不是使用url helper来生成它们。例如,你写了这样的代码:
$.ajax({
url: '/BuildingManager/Employees/2',
....
});它在localhost上运行良好,因为您没有虚拟目录名,但在服务器上部署时不起作用,因为现在正确的路径是:
$.ajax({
url: '/Dev/BuildingManager/Employees/2',
....
});出于这个原因,你绝对不应该像那样硬编码urls。
当我尝试发布表单时,尝试发布到http://213.229.125.117/Dev/BuildingManager/SaveBuilding,这似乎是一个非常奇怪的url,因为它缺少整个开头。再说一次:永远不要硬编码urls。始终使用url helper。
https://stackoverflow.com/questions/9722946
复制相似问题