Javascript 重新呈现从AJAX调用返回的razor部分视图
我有以下javascript:Javascript 重新呈现从AJAX调用返回的razor部分视图,javascript,ajax,asp.net-mvc,razor,Javascript,Ajax,Asp.net Mvc,Razor,我有以下javascript: $.ajax({ type: "POST", url: url, data: $(form).serialize(), success: function (res) { commentsField.append(res);
$.ajax({
type: "POST",
url: url,
data: $(form).serialize(),
success: function (res) {
commentsField.append(res);
}
});
此ajax调用正在成功地从控制器接收部分视图。问题是在接收到的部分视图中存在razor语法,可以在页面刷新时正确呈现。有没有办法只重新呈现这段新的cshtml代码,而不刷新整个页面
更新:
这是我的视图,它是注释模型的显示模板:
@model CommentModel
<div class="comment">
@Model.Body — <span class="buttonlink">@Model.AuthorUsername</span>; @Model.PostDate.ToString("F", CultureInfo.CreateSpecificCulture("bg-BG"))
@if (ViewBag.UserId != null && ViewBag.UserId.Equals(Model.AuthorId))
{
<a class="comment-delete-btn" href="javascript:{}" data-parentid="@Model.ParentId" data-id="@Model.Id"><span class="fa fa-times-circle pull-right"></span></a>
}
</div>
@model-CommentModel
@模型体&8212@Model.AuthorUsername@Model.PostDate.ToString(“F”,CultureInfo.CreateSpecificCulture(“bg”))
@if(ViewBag.UserId!=null&&ViewBag.UserId.Equals(Model.authord))
{
}
我的问题是
if
语句中的html在检索后没有立即显示-我必须刷新页面以呈现
标记。我认为您的ViewBag.UserId
没有在您的PatialView中设置。如果为null,则不会执行If语句。这就导致了问题。你能分享你的部分视图代码和呈现的html吗?我怀疑你的ViewBag.UserId
是null
,因为你调用了ajax
并且可能没有在POST
操作中设置ViewBag.UserId
值。在get中设置的ViewBag.UserId
不会影响您的post
操作。这可能就是为什么你只有在刷新后才能正确地看到它。谢谢,这就解决了问题!如果您愿意,将此作为答案发布,以便我可以接受:)