2013-05-14 80 views
0

我在'/'应用程序中收到错误 服务器错误。添加HttpPost在MVC中出现'资源无法找到'错误

无法找到该资源。

说明:HTTP 404.您正在查找的资源(或其某个依赖项)可能已被删除,名称已更改或暂时不可用。请检查以下网址并确保它拼写正确。

请求的URL:/ ClientEdit/ClientEdit/1104

版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.272

当我将HttpPost属性添加到控制器。我已经研究过这个问题,并用张贴的(没有双关语意思的)答案纠正了我的代码,但没有任何我尝试过的。这里是我的控制器头:

[HttpPost] 
public ActionResult ClientEdit(int id,FormCollection formCollection) 

我添加了HttpPost,所以我可以填充我的FormCollection对象。与其他SO帖子一样,这会导致错误。删除它可以解决问题,但我的FormCollection不会填充任何键/值对。

我的观点有其形式标记的方法设置为POST,它解决了其他开发者的问题,但它不能解决我的问题。我尝试添加'name ='属性到我的文本框控件以及'id =',但这也不起作用。

<body> 

<form method="post" action="1104" id="form1"> 

我不知道还有什么要尝试。

+0

@Charls点是有效的,只是张贴在错误的地方。请修改您的问题以包含您收到的实际例外。 –

回答

0

您需要为您提供呈现<form>的视图。你所显示的你的HTML的action看起来对我来说不对。我想这应该是action="/Controller/ClientEdit"

0

您在属性action =“1104”中给出了错误的值。

要么你可以指定正确的路线在行动属性或离开它,如果路线是一样的get。

这应该工作,如果GET和POST路线相同

<form method="post" id="form1"> 
..... 
</form> 
0

使用本:

@using(Html.BeginForm()){ 
<!--Your form field--> 
} 

基本上正在发生的事情是,你的action属性只是指向ID您有不要发布的网址。

您可以手动像这样做:

<form action="ClientEdit/ClientEdit/1104> 
<!--form fields--> 
</form> 
0

是的,你是正确的。我正在通过一个用户名作为动作。这是传统的代码,它为另一个功能“工作”,但不符合MVC模式。我做了一些其他的研究(因为我对MVC也不太熟悉),并且使用MVC从头开始,因为它应该是。感谢大家。

相关问题