添加HttpPost会在MVC中收到错误“无法找到资源”

时间:2013-05-14 18:55:56

标签: c# html asp.net-mvc model-view-controller

我收到了错误 '/'应用程序中的服务器错误。

无法找到资源。

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

请求的网址:/ 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">

我不知道还有什么可以尝试的。

4 个答案:

答案 0 :(得分:0)

您需要为您提供呈现<form>的视图。您显示为HTML的action对我来说是错误的。我认为它会像action="/Controller/ClientEdit"

答案 1 :(得分:0)

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

您可以在action属性中指定正确的路线,或者如果路线与get相同,则保留该路线。

如果GET和POST路由相同,这应该有用

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

答案 2 :(得分:0)

使用它:

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

基本上发生的事情是你的action属性只是指向你拥有的Id而不是要发布到的url。

你可以像这样手动完成:

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

答案 3 :(得分:0)

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

相关问题