如何解决是否可能有重复的动作名称和参数列表用于发布和获取?
| 是否可以有两个具有相同名称和参数的动作,但一个是帖子,另一个是get?例如Delete(id)
和[HttpPost]Delete(id)
...我收到一条错误消息说不允许这样做...
解决方法
是的,有可能。只需对一项操作使用ActionName属性:
public ActionResult Delete(int id)
{
//...
return View();
}
[HttpPost]
[ActionName(\"Delete\")]
public ActionResult Delete_Post(int id)
{
//...
return View();
}
, 收到错误消息(不允许这样做)的原因是C#本身感到困惑。在MVC中,您可以添加属性以指定函数是HttpGet还是HttpPost,但这并不能帮助C#确定一个函数之间的区别。为了使两个函数具有完全相同的名称,参数列表需要不同。
正如frennky所指出的,ActionName属性在MVC中起作用,因为MVC使用别名作为确定要调用哪个动作的过程的一部分(以及属性,而不是参数)。
附带说明一下,最好不要对GET请求执行Delete操作。您不希望搜寻器或其他漫游器意外点击错误的链接:P
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。