Немного опоздал на вечеринку по этому вопросу, но я нашел более простое решение для того, что я считаю довольно распространенным случаем использования, когда вы запрашиваете на GET ("вы уверены, что хотите бла-бла-бла ? "), а затем действуйте на POST, используя те же аргументы.
Решение: используйте необязательные параметры .Не нужно никаких скрытых полей и тому подобное.
Примечание. Я проверял это только в MVC3.
public ActionResult ActivateUser(int id)
{
return View();
}
[HttpPost]
public ActionResult ActivateUser(int id, string unusedValue = "")
{
if (FunctionToActivateUserWorked(id))
{
RedirectToAction("NextAction");
}
return View();
}
В заключительной ноте нельзя использовать string.Empty вместо ""
, поскольку он должен бытьпостоянная времени.И это отличное место для размещения забавных комментариев, которые кто-то другой найдет:)