MVC部分视图返回整页而不仅仅是部分

时间:2017-12-27 16:25:19

标签: ajax asp.net-mvc asp.net-mvc-4 partial

我有以下名为" _transactions":

的部分视图
<div id="section-transactions" class="documentsanchor">
</div>
<div>
    <div class="row">
        <div class="col-lg-12">
            <div>
                <h4 class="company-headings">@ViewBag.SecSymbol Transactions</h4>
            </div>
        <div>
    </div>
</div>

我使用

渲染它
 @{Html.RenderAction("Transactions", "Company");}

这是公司控制器的交易方法:

    public async Task<PartialViewResult> Transactions()
    {
        ViewBag.SecSymbol = "test";

        return PartialView("_transactions");
    }

它位于包含其他部分视图的页面上。

这很好用。但是,我在页面上有一个按钮,应该获得一个新的局部视图并替换当前的视图。它按如下方式进行ajax调用

    $("#btn_transactions").click(function (e) {           
        var url = "Company/Transactions";
        $.ajax({
            url: url,
            success: function (result) {
                alert(result);
                $('#transTarget').html(result);
            },
            error: function () {
                alert("Error occured");
            }
        });
    })

问题是整个页面都返回&#34;结果&#34;,即所有部分和布局,当我想要的只是事务部分。我做错了什么?

2 个答案:

答案 0 :(得分:3)

在局部视图中添加此代码

@{
Layout=null;
}

答案 1 :(得分:0)

确保在配置中设置了路由-

routes.MapRoute("CompanyTransactions", "company/transactions", new { controller = "Company", action = "Transactions" });