ASP.NET MVC 3 - отправка формы обратно в контроллер - PullRequest
2 голосов
/ 28 ноября 2011

Я новичок в ASP.NET MVC.В настоящее время я использую ASP.NET MVC 3. Я пытаюсь создать базовую форму с кнопкой изображения, которая отправляет данные обратно в контроллер.Моя форма выглядит следующим образом:

MyView.cshtml

@using (Html.BeginForm())
{
  @Html.TextBox("queryTextBox", string.Empty, new { style = "width:150px;" })
  <input type="image" alt="Search" src="/img/search.png" value="Search" name="ExecuteQuery" />
}

MyController.cs

public class MyController: Controller
{
  public ActionResult Index()
  {
    ViewData["CurrentDate"] = DateTime.UtcNow;
    return View();
  }

  [HttpPost]
  public ActionResult ExecuteQuery()
  {
    if (ModelState.IsValid)
    {
      return View();
    }
  }
}

Iпроверил, что я получаю доступ к коду моего контроллера.Я смог сделать это, успешно распечатав «CurrentDate», связанную с ViewData.Однако, когда я нажимал кнопку с изображением, я предполагал, что моя точка останова в методе ExecuteQuery сработает.Это не.Что я делаю неправильно?Как мне сделать простой POST в MVC?

Ответы [ 2 ]

8 голосов
/ 28 ноября 2011

Ваша форма указывает на неправильное действие.

Вызов Html.BeginForm() создает <form>, который отправляет текущее действие (Index).
Вам необходимо передать имя действияBeginForm.

0 голосов
/ 03 декабря 2011

Попробуйте это

@using (Html.BeginForm("ExecuteQuery", "MyController", FormMethod.Post))
{
   @Html.TextBox("queryTextBox", string.Empty, new { style = "width:150px;" })
   <input type="submit" value="Search" />
}

В вашем контроллере

public class MyController: Controller
{
  public ActionResult Index()
  {
     ViewData["CurrentDate"] = DateTime.UtcNow;
     return View();
  }

  [HttpPost]
  public ActionResult ExecuteQuery(string queryTextBox)
  {
     if (ModelState.IsValid)
     {
         // DO SOMETHING WITH queryTextBox
         return View();
     }
  }
}

Если кнопка отправки изображения очень важна для вас, вы все равно можете изменить фоновое изображение кнопки с помощью CSS.

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