javascript - 如何像在 Facebook 上一样使用 ajaxify 编写短信

标签 javascript jquery asp.net-mvc ajax razor

我有一个文本字段,用户可以在该字段下方编写短消息(例如 g+ 或 fb 上的状态),我有一个需要显示该消息的列表。当用户提交该消息时,它将存储在数据库中,之后我刷新整个 View 。这就是我显示该列表的方式:

@foreach (var m in @Model.Messages){
   <div>
      <p>@m.Author</p>
      <p>@m.Text</p>
   </div>
}

现在我不想做出更好的用户体验。我不想在查看时不刷新就添加该消息。我知道我必须使用 JQuery、Ajax 等,但我在 google 上搜索过,找不到任何关于 ASP MVC/Razor 和类似功能的好的教程或示例。有人可以给我一些指导吗?

最佳答案

在 google 中输入 asp.net mvc ajax jquery 通常会产生足够多的结果。但无论如何,这就是你可以做的。假设您有一个文本字段,用户将在其中键入消息:

@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>
}

您可以 AJAX 化此表单:

$(function() {
    $('addMessageForm').submit(function() {
        $.ajax({
            url: this.action,
            type: this.method,
            data: $(this).serialize(),
            success: function(result) {
                $('#messages').append(result);
            }
        });
        return false;
    });
});

最后,您将有一个 Controller 操作,它将执行将消息实际添加到数据库的操作:

[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>

关于javascript - 如何像在 Facebook 上一样使用 ajaxify 编写短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7845838/

相关文章:

javascript - 在全日历中显示更多文本

javascript - 页面大小调整时位置(X、Y 坐标)更新

php - 将 jQuery 值传递给 PHP

javascript - iframe 调用父级 javascript

c# - 要调用此方法, "Membership.Provider"属性必须是 "ExtendedMembershipProvider"的实例

ASP.NET MVC 3 - @Html.DropDownList - 如何更改描述?

c# - 使用 MVC 5 和 Asp.net Identity 的电子邮件确认

javascript - 从 hlink 加载时页面未加载?

javascript - JQuery 使过多的动画队列

javascript - ReactJS文档中的变量声明