Ввод asp.net mvc ajax jquery в Google обычно дает достаточно результатов.Но в любом случае вот что вы могли бы сделать.Предполагая, что у вас есть текстовое поле, в которое пользователи будут вводить свои сообщения:
@using (Html.BeginForm("AddMessage", "Messages", FormMethod.Post, new { id = "addMessageForm" }))
{
@Html.TextBoxFor(x => x.Author)
@Html.TextAreaFor(x => x.Text)
<button type="submit">Add message</button>
}
, вы можете AJAXify эту форму:
$(function() {
$('addMessageForm').submit(function() {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function(result) {
$('#messages').append(result);
}
});
return false;
});
});
и, наконец, вы получите действие контроллера, которое будет выполнятьфактическое добавление сообщения в базу данных:
[HttpPost]
public ActionResult AddMessage(MessageViewModel message)
{
// TODO: add the message to the database
return PartialView("~/Views/Messages/DisplayTemplates/MessageViewModel.cshtml", model);
}
и соответствующий шаблон отображения (~/Views/Messages/DisplayTemplates/MessageViewModel.cshtml
):
@model MessageViewModel
<div>
@Html.DisplayFor(x => x.Author)
@Html.DisplayFor(x => x.Text)
</div>
, и список сообщений будет отображаться с использованием шаблонов отображения ибез использования циклов:
<div id="messages">
@Html.DisplayFor(x => x.Messages)
</div>