asp.net mvc formcollection

maz*_*ztt 7 asp.net-mvc

public  ActionResult Edit(int  id, FormCollection formValues) {

    // Retrieve existing dinner
    Dinner dinner = dinnerRepository.GetDinner(id);

    // Update dinner with form posted values
    dinner.Title = Request.Form["Title"];
    dinner.Description = Request.Form["Description"];
    dinner.EventDate = DateTime.Parse(Request.Form["EventDate"]);
    dinner.Address = Request.Form["Address"];
    dinner.Country = Request.Form["Country"];
    dinner.ContactPhone = Request.Form["ContactPhone"];

    // Persist changes back to database
    dinnerRepository.Save();

    // Perform HTTP redirect to details page for the saved Dinner
    return RedirectToAction("Details", new { id = dinner.DinnerID });
}
Run Code Online (Sandbox Code Playgroud)

formValues在方法中没有使用.它的目的是什么?

Mal*_*nce 25

MVC的一个主要进步是摆脱这种左右无聊的赋值代码.它有适当的机制,可以为您完成这项工作.在这种情况下,您可以执行以下操作:

Dinner dinner = dinnerRepository.GetDinner(id);
UpdateModel(dinner, formValues); // Automatically updates properties with values from the collection
dinnerRepository.Save();
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.


Dan*_*son 0

看这里FormCollection是如何使用的:How can a formcollection be enumerated in ASP.NET MVC?