/ / Моделът не е населен на HTTPost - asp.net-mvc, asp.net-mvc-3, контролер

Моделът не е попълнен на HTTPost - asp.net-mvc, asp.net-mvc-3, контролер

Имам действие за създаване, което не изпраща създадената и създадена обратно в HttpPost действие.

Това не са свойства, които могат да се дефинират от потребителя, ив идеалния случай аз не искам те да се показват във формуляра на всички. И така, как мога да получа тези свойства в модела, без да ги имам в самата форма? Трябва ли да бъдат скрити полета във формата?

Контролерът

public virtual ActionResult Create()
{
var meeting = new Meeting
{
CreatedOn = DateTime.Now,
CreatedBy = User.Identity.Name,
StartDate = DateTime.Now.AddMinutes(5),
EndDate = DateTime.Now.AddHours(3)
};

ViewBag.Title = "Create Meeting";
return View(meeting);
}



[HttpPost]
public virtual ActionResult Create(Meeting meeting)
{
if (ModelState.IsValid)
{

_meetingRepository.InsertOrUpdate(meeting);
_meetingRepository.Save();
return RedirectToAction(MVC.Meetings.Details(meeting.MeetingId));
} else {

return View();
}
}

Отговори:

2 за отговор № 1

Трябва ли да са скрити полета във формуляра?

Да, това определено е един добър начин за прехвърлянето им. Имайте предвид, че това не е сигурно, защото потребителят може да фалшифицира POST заявка и да ги модифицира, но това може да е наред в сценария.

Така че, ако имате нужда от сигурност, друг начин е да ги извлечете отново от хранилището за данни, тъй като потребителят не може да ги модифицира в тази форма, за да не се промени.