Передать UserId в модель - PullRequest
1 голос
/ 27 марта 2012

Итак, у меня есть простое веб-приложение, в котором я могу создать пользователя (UserModel), и оно возвращает этот идентификатор пользователя. Затем пользователь имеет возможность вводить несколько экземпляров или записей определенного типа элемента, в данном случае географического местоположения (LocationModel). LocationModel имеет свойство UserId, которое мне нужно установить при создании местоположения.

ActionLink для создания пользователя: User / Create / id = [userid]

Код в контроллере в настоящее время.

[HttpGet]
public ActionResult Create(string id)
{
     return View();
}

[HttpPost]
public ActionResult Create(LocationModel model)
{
   //CODE TO SAVE MODEL
}

Мои вопросы - как передать идентификатор пользователя, чтобы я мог включить его в модель, чтобы связать их. Я собирался передать его в ViewBag и отобразить его в скрытом поле, но думал, что кто-то должен иметь более элегантное решение, чем это. Заранее спасибо.

1 Ответ

3 голосов
/ 27 марта 2012

Поместите UserId на модель и передайте модель представлению:

[HttpGet]
public ActionResult Create(string id)
{
    return View(new LocationModel{UserId = id});
}

Затем отобразите свойство UserId как скрытое поле в представлении, чтобы оно было включено в ваш *Параметр 1005 * при отправке формы.

@model LocationModel
@using (Html.BeginForm(...)) {
    @Html.HiddenFor(m => m.UserId)
    ...
}
...