Как получить параметр URL из метода POST [ASP.NET MVC] - PullRequest
0 голосов
/ 21 января 2012

Я реализовал два действия:

Первое действие, которое он отображает в представлении адреса с идентификатором потребителя в URL:

Это URL http://localhost:90/Consumer/Address?id=18755

[HttpGet]
public ActionResult Address(int id)
{
return View();
}

Второе действие - отправка формы адреса:

 [HttpPost]
public ActionResult Address(FormCollection value)
{
  int id = Convert.ToInt32(Request["id"]);
  // Some code ... 
  return View();
}

Когда я запускаю действие сохранения, я обнаружил, что идентификатор пуст, я хотел бы получить идентификатор потребителя из действия Получить?

1 Ответ

0 голосов
/ 21 января 2012

Я хотел бы получить идентификатор пользователя из действия Get?

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

Так, например, если мы предположим, что ваше действие GET предоставило представление, содержащее <form>, которое будет использоваться для POST, вы могли бывключите идентификатор в качестве скрытого поля внутри этой формы.Таким образом, когда форма отправлена, она будет отправлена ​​на второе действие:

@using (Html.BeginForm())
{
    @Html.Hidden("id", Request["id"])

    ... some other input fields
    <button type="submit">OK</button>
}

Также в вашем действии POST вместо некоторых ручных преобразований типов просто используйте связыватель модели по умолчанию, чтобы сделать это за вас.Определите модель представления:

public class MyViewModel
{
    public int Id { get; set; }

    ... some other properties
}

и затем сделайте, чтобы ваше действие POST приняло эту модель представления в качестве аргумента действия:

[HttpPost]
public ActionResult Address(MyViewModel model)
{
    int id = model.Id;
    // Some code ... 

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