如何让HttpPost工作?
我写了以下行动来接收我的表格:
[Authorize]
[HttpPost]
public ActionResult TextAction()
{
ViewBag.Title = "POST";
return View();
}
[Authorize]
public ActionResult TextAction(string title)
{
ViewBag.Title = "GET";
return View();
}
表格:
@using (Html.BeginForm("TextAction", "Admin", FormMethod.Post)){...}
嗯......它应该在第一个动作中写“POST”View ...不是吗?
为什么它只重定向到“GET”?
请帮忙!
答案 0 :(得分:1)
如果通过“第一个操作视图”表示用户在浏览时首先看到的那个“http://www.mysite.com/Admin/TextAction
”。当您在地址栏中输入内容并输入回车或点击普通<a>
链接时,总会使用GET。
启动帖子操作的最常用方法是让用户单击某个表单,其中method
属性设置为POST
。
答案 1 :(得分:0)
嗯......它应该在第一个动作中写“POST”View ...不是吗?
正如alun在上面指出的那样,没有。我认为麻烦在于您对HTTP协议如何工作的假设;阅读它可能是一个好主意。除了阅读之外,获得一些实用见解的好方法是使用类似FireBug的内容,并在“网络”标签下查看。你会看到GET和POST发生的时间。
答案 2 :(得分:0)
问题在于,当您要求向您呈现表单时,您正在从服务器获取数据,但是当您填写表单并将其发送回服务器时,您正在发布数据。因此,如果您没有提交表格,在您的情况下说GET是正常的。提交表单的那一刻,浏览器将启动POST方法,并且将调用您的Post版本的操作。