Я новичок в MVC, и мне сложно решить эту проблему. Я получил идентификатор пользователя через Session["LoggedUserID"]
, когда он появится после входа пользователя. Я хочу передать его следующему коду cshtml (или непосредственно в контроллере), который я пока не понимаю. Это действие происходит, когда пользователь хочет создать новую запись.Как передать данные сеанса с контроллера на View (MVC)
вид внутри cshtml (код, созданный автоматически из контроллера):
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.CreatorUserId, "CreatorUserId", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("CreatorUserId", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.CreatorUserId, "", new { @class = "text-danger" })
</div>
</div>
Мой код контроллера:
[HttpGet]
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(Review review)
{
if (ModelState.IsValid) {
db.Reviews.Add(review);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(review);
}
Как передать Session["LoggedUserID"]
в cshtml (или непосредственно через контроллер)? Таблица обзора использует userID как FK для идентификатора пользователя.
EDIT: Сообщение об ошибке я получаю за мой текущий код:
There is no ViewData item of type 'IEnumerable' that has the key 'CreatorUserId'.
Любая помощь очень ценится. Благодарю.
Вы можете получить доступ к сеансу в контроллере, поэтому неясно, в чем проблема. –
Возможный дубликат [Доступ к сеансу просмотра на странице просмотра в ASP.Net MVC] (http://stackoverflow.com/questions/21088514/access-session-on-view-page-in-asp-net-mvc) –
Или http : //stackoverflow.com/questions/18608452/mvc-4-how-pass-data-correctly-from-controller-to-view ... Действительно непонятно, с чем вы столкнулись (возможно, потому, что вы не понимаете, как ASP .Net MVC работает, а может быть, как работает сессия). –