MVC 3 [HttpPost] - PullRequest
       4

MVC 3 [HttpPost]

1 голос
/ 12 августа 2011

Как мне заставить 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"?

Помогите пожалуйста!

Ответы [ 3 ]

1 голос
/ 12 августа 2011

Если под «представлением первого действия» вы подразумеваете то, что пользователь впервые видит при просмотре, чтобы сказать «http://www.mysite.com/Admin/TextAction».GET всегда используется, когда вы вводите что-то в поле адреса и вводите, или когда вы нажимаете на обычную ссылку <a>.

Наиболее распространенный способ инициировать действие публикации - это когда пользователь нажимает на кнопкукнопка отправки формы, для атрибута method которой установлено значение POST.

0 голосов
/ 12 августа 2011

Дело в том, что когда вы запрашиваете форму для представления вам, вы получаете данные с сервера, но когда вы заполняете форму и отправляете ее обратно на сервер, вы отправляете данные. Поэтому нормально сказать GET в вашем случае, если вы не отправили форму. В тот момент, когда вы отправляете форму, браузер запускает метод POST и вызывается ваша версия действия Post.

0 голосов
/ 12 августа 2011

Ну ... это должно было написать "POST" в первом действии View ... не так ли?

Как указывалось выше, нет.Я думаю, проблема в ваших предположениях о том, как работает протокол HTTP;Вероятно, это хорошая идея, чтобы немного прочитать об этом.Помимо чтения, хороший способ получить практическое понимание - использовать что-то вроде FireBug и проверить на вкладке «Сеть».Вы увидите GET и POST, как и когда они произойдут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...