Имам действие за създаване, което не изпраща създадената и създадена обратно в 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 заявка и да ги модифицира, но това може да е наред в сценария.
Така че, ако имате нужда от сигурност, друг начин е да ги извлечете отново от хранилището за данни, тъй като потребителят не може да ги модифицира в тази форма, за да не се промени.