Извините за название, но я не знал, как объяснить это всего одним предложением.У меня есть представление с формой:
@using (Html.BeginForm("AddComment", "Restaurants"))
{
@Html.TextBoxFor(c => c.NewComment.Body)
@Html.HiddenFor(m => m.Restaurant.Id)
<button type="submit">Add comment</button>
}
И действие AddComment в контроллере Restaurants:
public ActionResult AddComment(RestaurantViewModel model, Comment newComment)
{
var userId = User.Identity.GetUserId();
var user = _context.Users.FirstOrDefault(u => u.Id == userId);
newComment.RestaurantId = model.Restaurant.Id;
newComment.AuthorId = Guid.Parse(userId);
newComment.AuthorName = user.UserName;
newComment.DateTime = DateTime.Now;
_context.Comments.Add(newComment);
_context.SaveChanges();
return RedirectToAction("Details", "Restaurants", new { id = model.Restaurant.Id});
}
И я добавил фильтр авторизации:
filters.Add(new AuthorizeAttribute());
Когда я пытаюсьчтобы отправить форму как незарегистрированный пользователь, он перенаправляет меня на страницу входа.Если я захожу на эту страницу, он вызывает AddComment
Action, но передает аргументы Model.Restaurant
и NewComment.Body
как нули.Как это исправить, чтобы при входе в систему он перенаправлял меня на предыдущую страницу с заполненным TextBox или просто вызывал AddComment
, но передавал правильные значения аргументов.