I am developing a website using Microsoft MVC3, and have built it upon the default MVC3 Application template. It accesses an external database and works on localhost.
I have deployed it to a shared server I rent from storminternet via the publish tool using ftp method (storminternet do not yet support web deploy), and it runs well. It accesses the database okay and get requests work fine.
However, any form that submits via POST protocol returns page not found error 404 (this is on actions where I have asserted [HttpPost]).
Storm internet assure me that POST and GET are allowed by default, and since the helpdesk are not developers, I’m unsure who to turn to. I don’t have an excellent understanding of web.config, although I can read and understand xml and see what’s going on by reading through and googling. I have tried adding the protocols to the root web.config, and I think I might be barking up the wrong tree.
Has anyone else had this problem, or might anyone know how to help me?
To replicate my error, my site is here… 213.229.125.117/$sitepreview/ase-limited.com/Dev (sorry it isn’t blue. The dollar gets parsed to % something)
and the quickest route to a POST request is to click ‘Add Building’ at the top of the left-hand side and then click ‘Save’ at the top of the dialogue box.
Any help will be gratefully received. I’ve been stuck on this for days without luck.
Best Regards
Nick
STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-
It turned out to be a known issue with sitepreview. Switching to the proper domain sorted everything.
I have noticed that you have some 404 javascript errors when performing your AJAX requests. For example you have a request to:
instead of:
Notice how
/Devis missing. That’s because in your javascripts you have hardcoded your urls instead of using url helpers to generate them. For example you wrote something like this:which works fine on localhost because you don’t have a virtual directory name but doesn’t work when you deploy on your server because now the correct path is:
For this reason you should absolutely never hardcode urls like that.
And when I try to POST the form in tries to post to http://213.229.125.117/Dev/BuildingManager/SaveBuilding which seems a very weird url as it is missing the whole beginning. Once again: never hardcode urls. Always use url helpers.