некоторые друзья и я начали проект команды, но мы застряли на этом этапе. Мы сделали функцию сайта, чтобы добавлять комментарии к каждому сообщению. Проблема заключается в том, что при нажатии кнопки добавляется комментарий, но не обновляется страница, которая вызывает некоторые проблемы. Автор остается «анонимным», а при нажатии кнопки обновления отображается предупреждение:ASP.NET MVC Перенаправление на ту же страницу после нажатия кнопки отправки
Страница, в которой вы ищете информацию, которую вы ввели. Возврат на эту страницу может привести к повторению любого действия, которое вы приняли. Вы хотите продолжить?
Однако, если мы просто набираем URL еще раз и нажимаем «ВВОД», все хорошо: появляется автор, и комментарий появляется только один раз. Поэтому единственным решением для нас является перенаправление на ту же страницу. Вот форма:
<div style="text-align: left">
<div><i>Leave your comment</i>
</div>
<form method="post">
<fieldset>
<p>
<textarea rows="10" class="form-control" type="text" id="1" name="commentText" style="height: 100px"></textarea>
</p>
<p>
<input type="submit" name="buttonSubmit" onclick="redirect" value="Add comment" class="btn btn-default" style="" />
</p>
</fieldset>
</form>
</div>
Это как комментарии печатаются на странице:
<h3>Comments</h3>
<br>
<div>
@foreach (var comment in ViewBag.Comments) {
<section class="row">
<article class="post col-md-12">
<div class="about">
Posted on <i>@comment.Date</i>
@if (comment.AuthorId != null) { @: by <i>@comment.Author.FullName</i>
}else { @: by <i>anonymous</i>
}
</div>
<div class="body">@comment.Text</div>
</article>
</section>
}
</div>
Заранее спасибо!
Может быть, лучший способ справиться с этим, чтобы отправить данные на сервер через вызов Ajax и обновите только раздел комментария с ответом, а не перезагрузкой/перенаправлением на ту же страницу. – ChiefTwoPencils
Ну, данные на сервер отправляются через контроллер, и мы используем этот тип отправки всюду в приложении. Я не мог полностью понять вторую часть вашего ответа. Как это может быть сделано. –
Все в порядке. Вы можете добавить функциональность Ajax и использовать «обычные» контроллеры. Если вы захотите, вы также можете пойти по маршруту ApiController. Как это сделать, лучше было бы учесть учебник. Очень простой стартер будет [это] (https://msdn.microsoft.com/en-us/library/dd381533 (v = vs.100) .aspx). Вы можете найти более глубокий поиск; То же самое верно для веб-маршрута api. – ChiefTwoPencils