gpt4 book ai didi

javascript - 如何像在 facebook 上一样使用 ajaxify 编写短消息

转载 作者:行者123 更新时间:2023-11-29 20:14:19 24 4
gpt4 key购买 nike

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

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

现在我不想做更好的用户体验。我不想在查看时不刷新就添加该消息。我知道我必须使用 JQuery、Ajax 等,但我在谷歌上搜索过,找不到任何关于 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com