新增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">
我不知道还能尝试什么。
您还需要提供呈现<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,因为它应该是。谢谢每一个人。