Модель не заполнена на HTTPost - PullRequest
1 голос
/ 10 апреля 2011

У меня есть действие создания, которое не отправляет CreatedOn и CreatedBy обратно в действие создания 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();
        }
    }

1 Ответ

2 голосов
/ 10 апреля 2011

Должны ли они быть скрытыми полями в форме?

Да, это определенно хороший способ их передать. Обратите внимание, что это небезопасно, потому что пользователь может подделать запрос POST и изменить его, но это может быть нормально в вашем сценарии.

Поэтому, если вам нужна безопасность, другой способ - это повторно извлечь их из хранилища данных, поскольку пользователь не может изменить их в этой форме, чтобы они не изменились.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...