C# MVC 3[HttpPost]

C# MVC 3[HttpPost],c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我如何让HttpPost工作 我已编写以下操作以接收我的表单: [Authorize] [HttpPost] public ActionResult TextAction() { ViewBag.Title = "POST"; return View(); } [Authorize] public ActionResult TextAction(string title) { Vie

我如何让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”。。。不是吗

为什么它只重定向到“GET”

救命啊

如果“first action view”(第一个动作视图)是指用户在浏览时第一次看到的视图,即“
http://www.mysite.com/Admin/TextAction
”。在“地址”字段中键入内容并键入enter,或单击正常的
链接时,始终使用GET

启动post操作最常见的方法是让用户单击某个表单的提交按钮,该表单的
方法
属性设置为
post

,如果“first action view”是指用户在浏览时首先看到的表单,例如“
http://www.mysite.com/Admin/TextAction
”。在“地址”字段中键入内容并键入enter,或单击正常的
链接时,始终使用GET

启动post操作最常见的方法是让用户单击某个表单的提交按钮,该表单的
方法
属性设置为
post

嗯。。。它应该在第一个动作视图中写“POST”。。。不是吗

正如alun在上面指出的,不是。我认为问题在于你对HTTP协议如何工作的假设;读一读可能是个好主意。除了阅读之外,获得一些实用见解的一个好方法是使用类似的工具,并在“Net”选项卡下进行检查。您将看到GET和POST在何时发生

嗯。。。它应该在第一个动作视图中写“POST”。。。不是吗


正如alun在上面指出的,不是。我认为问题在于你对HTTP协议如何工作的假设;读一读可能是个好主意。除了阅读之外,获得一些实用见解的一个好方法是使用类似的工具,并在“Net”选项卡下进行检查。您将看到GET和POST发生的时间。

问题是,当您请求向您提交表单时,您正在从服务器获取数据,但当您填写表单并将其发送回服务器时,您正在发布数据。因此,如果您没有提交表格,那么在您的情况下说GET是正常的。当您提交表单时,浏览器将启动POST方法,并且您的POST版本的操作将被调用。

问题是,当您请求向您提交表单时,您正在从服务器获取数据,但当您填写表单并将其发送回服务器时,您正在发布数据。因此,如果您没有提交表格,那么在您的情况下说GET是正常的。在您提交表单时,浏览器将启动POST方法,并调用您的POST版本的操作。

您如何提交表单?表单中是否有任何输入被发布回服务器?我建议您阅读有关GET和POST的内容,因为您显然感到困惑。否则我会被你的问题弄糊涂。你是如何提交表格的?表单中是否有任何输入被发布回服务器?我建议您阅读有关GET和POST的内容,因为您显然感到困惑。否则我会被你的问题弄糊涂。