Я новичок в MVC, поэтому, пожалуйста, несите меня. :-)Render action return View(); form
У меня есть строго типизированный вид «История». В этом представлении (истории) могут быть комментарии.
Я создал два представления (не частичные) для моего контроллера комментариев «ListStoryComments» и «CreateStoryComment», которые делают то, что подразумевают их имена. Эти взгляды включены в Story View с помощью RenderAction, например .:
<!-- List comments -->
<h2>All Comments</h2>
<% Html.RenderAction("ListStoryComments", "Comments", new { id = Model.Story.Id }); %>
<!-- Create new comment -->
<% Html.RenderAction("CreateStoryComment", "Comments", new { id = Model.Story.Id }); %>
(я прохожу в Story идентификатор для того, чтобы перечислить соответствующие комментарии).
Все работает так, как я надеялся, кроме случаев, когда я отправляю новый комментарий с помощью формы, он возвращает текущий (родительский) вид, но в поле «Комментарии» по-прежнему отображается последнее содержимое, которое я ввел, а ListStoryComments View isn обновлен, чтобы показать новую историю.
В основном, страница загружается из кеша, как если бы я нажал кнопку возврата браузера. Если я нажму f5, он попытается переписать форму. Если я перезагружу страницу вручную (повторно введите URL-адрес в адресной строке браузера), а затем нажмите f5, я увижу новое содержимое и пустое поле формы, что является моим желаемым результатом.
Для полноты моего CreateStoryComment действий выглядит следующим образом:
[HttpPost]
public ActionResult CreateStoryComment([Bind(Exclude = "Id, Timestamp, ByUserId, ForUserId")]Comment commentToCreate)
{
try
{
commentToCreate.ByUserId = userGuid;
commentToCreate.ForUserId = userGuid;
commentToCreate.StoryId = 2; // hard-coded for testing
_repository.CreateComment(commentToCreate);
return View();
}
catch
{
return View();
}
}
Я просто смотрел другое видео MVC Фила Хаака и он упоминает "PRG" образец (Post, перенаправление Получить), который должен , Я думаю, исправить эту проблему. Однако, если я попробую что-то вроде «return RedirectToAction (« Index »); Я получаю сообщение о том, что «Действиям с детьми не разрешено выполнять действия перенаправления», поэтому я все еще в тупике. –