新增HttpPost获取错误'资源无法找到'在MVC

本文关键字:MVC 获取 HttpPost 新增 资源 取错误 | 更新日期: 2023-09-27 18:13:26

我得到错误"/"应用程序中的服务器错误。

无法找到资源。

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

请求的URL:/clienttedit/clienttedit/1104

版本信息:Microsoft .NET Framework Version:4.0.30319;ASP。净版: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">

我不知道还能尝试什么。

新增HttpPost获取错误'资源无法找到'在MVC

您还需要提供呈现<form>的视图。在你的HTML上的action对我来说是错误的。我想应该是action="/Controller/ClientEdit"之类的。

您在属性action="1104"中输入了错误的值。

你可以指定适当的route in action属性,或者如果路由与get相同,则不使用该属性。

如果GET和POST路由相同,这应该可以工作

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

use this:

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

基本上发生的事情是你的动作属性只是指向你的Id,而不是要发布到的url。

你可以手动这样做:

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

是的,你们都是对的。我正在传递一个用户id作为操作。这是为另一个功能"工作"的遗留代码,但不符合MVC模式。我做了一些其他的研究(因为我不太熟悉MVC),并重新开始使用MVC,因为它应该是。谢谢每一个人。