重新渲染从AJAX调用

时间:2015-07-19 19:40:01

标签: javascript ajax asp.net-mvc razor

我有以下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 &#8212; <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>标记。

1 个答案:

答案 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语句不执行。导致问题的原因。