Asp.Net局部视图不会重新加载

时间:2017-05-10 13:49:43

标签: jquery asp.net-mvc razor

我有一个视图,在这个视图中我嵌套了一个局部视图。 我想要实现的是通过jQuery从主视图重新加载局部视图。

这是我到目前为止所得到的:

Index.cshtml

@{Html.RenderAction("SkillResult", "Home"); }

<script type="text/javascript">

        var postData = { values: stringArray };

        // Fire off the request to controller
        $.ajax({
            cache: false,
            url: '/Home/SkillResult',
            type: "POST",
            dataType: 'json',
            data: postData
        });
</script>

SkillResult控制器(部分视图)

public ActionResult SkillResult(List<String> values)
{
        SkillContext skillContext = new SkillContext();
        List<Skill> result= skillContext.Skills.ToList();

        return PartialView(result);
}

SkillResult.cshtml

@model IEnumerable<Result>
@using SkillSearch.Models

<h2>SkillResult</h2>

@foreach (var item in Model)
{
    <div>
        @item.Name
        <hr />
    </div>
}

正如您所看到的,我从部分视图所在的Index.cshtml中激活了Ajax请求。如果我调试我可以看到所有请求都在工作但部分视图没有更新其内容。

1 个答案:

答案 0 :(得分:4)

您还没有在ajax调用中指定成功处理程序

我已经修改了一些代码来演示它是如何工作的

希望它会有所帮助:)

<script type="text/javascript">

    var postData = { values: stringArray };

    // Fire off the request to controller
    $.ajax({
        cache: false,
        url: '/Home/SkillResult',
        type: "POST",
        dataType: 'html',
        data: postData,
        success:function(result){
            $(element).html(result);
        }
    });
</script>