我有以下javascript:
$.ajax({
type: "POST",
url: url,
data: $(form).serialize(),
success: function (res) {
commentsField.append(res);
}
});
此ajax调用成功从控制器接收部分视图。问题是收到的局部视图中有剃刀语法,可以在页面刷新时正确呈现。有没有办法只重新渲染这个新的cshtml代码块而不刷新整个页面?
这是我的观点,它是评论模型的DisplayTemplate:
@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>
我的问题是if
语句中的html在检索后没有显示 - 我必须刷新页面才能呈现<a>
标记。
答案 0 :(得分:0)
我认为您的PatialView中未设置[[Table([]), Table([]), Table([])],
[Table([]), Table([]), Table([])]]
[[Table([1, 2, 3]), Table([]), Table([])],
[Table([]), Table([]), Table([])]]
[[Table([1, 2, 3]), Table([5, 8, 6]), Table([])],
[Table([]), Table([]), Table([])]]
[[Table([1, 2, 3]), Table([5, 8, 6]), Table([7, 4, 9])],
[Table([]), Table([]), Table([])]]
[[Table([1, 2, 3]), Table([5, 8, 6]), Table([7, 4, 9])],
[Table([7, 5, 3]), Table([]), Table([])]]
[[Table([1, 2, 3]), Table([5, 8, 6]), Table([7, 4, 9])],
[Table([7, 5, 3]), Table([2, 6, 8]), Table([])]]
[[Table([1, 2, 3]), Table([5, 8, 6]), Table([7, 4, 9])],
[Table([7, 5, 3]), Table([2, 6, 8]), Table([9, 1, 4])]]
。它为null,然后If语句不执行。导致问题的原因。