Если вы измените метод действия на FormCollection
в качестве конечного параметра, вы можете передать экземпляр FormCollection
, содержащий все ваши значения. Среда MVC будет автоматически передавать значения из формы в этом параметре при запуске в реальном времени.
public ActionResult MyMethod(FormCollection form)
{
// in testing you will pass in a populated FormCollection object
// at runtime the framework will populate the form parameter with
// the contents of the posted form
}
Здесь является разумным примером его использования.
Редактировать
Вы пробовали это:
/// <summary>
/// Creates a new entry
/// </summary>
/// <returns></returns>
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind()]Person person, FormCollection form)
{
if (form["DateOfBirth"].ToString() == "")
{
TempData["message"] = "Please select a date of Birth";
ViewData["DateOfBirth"] = form["DateOfBirth"].ToString();
MvcValidationAdapter.TransferValidationMessagesTo(
ViewData.ModelState, person.ValidationMessages);
return View();
}
else
{
if (person.IsValid())
{
person.DateOfBirth = Convert.ToDateTime(form["DateOfBirth"]);
personRepository.SaveOrUpdate(person);
TempData["message"] =
person.Firstname + " was successfully added";
return RedirectToAction(
"Create", "OrderDetails", new { id = person.ID });
}
else
{
ViewData["DateOfBirth"] = form["DateOfBirth"].ToString();
MvcValidationAdapter.TransferValidationMessagesTo(
ViewData.ModelState, person.ValidationMessages);
return View();
}
}
}