Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重新呈现从AJAX调用返回的razor部分视图_Javascript_Ajax_Asp.net Mvc_Razor - Fatal编程技术网

Javascript 重新呈现从AJAX调用返回的razor部分视图

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);

我有以下javascript:

            $.ajax({
                type: "POST",
                url: url,
                data: $(form).serialize(),
                success: function (res) {
                    commentsField.append(res);
                }
            });
此ajax调用正在成功地从控制器接收部分视图。问题是在接收到的部分视图中存在razor语法,可以在页面刷新时正确呈现。有没有办法只重新呈现这段新的cshtml代码,而不刷新整个页面

更新: 这是我的视图,它是注释模型的显示模板:

@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>
@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
操作。这可能就是为什么你只有在刷新后才能正确地看到它。谢谢,这就解决了问题!如果您愿意,将此作为答案发布,以便我可以接受:)