Ajax 发布到 httpost 操作方法,无需刷新特殊加载

本文关键字:刷新 加载 httpost 操作方法 Ajax | 更新日期: 2023-09-27 18:36:50

首先,我必须说我这里有一点脑筋急转弯。我可能对 ASP.Net MVC4 有点陌生,但我从未尝试过这样的事情。最终目标是标准页面中部分页面的树视图类型。现在我正在尝试使用 ajax 在div 中加载部分,同时将用户选择传递给下一个视图(它将用于缩小页面结果)。

<div>
    <div>
        <form id="myForm" action="ScheduleZone" method="post">
            <table class="table">
                <tr>
                    <th>Store
                    </th>
                </tr>
                @foreach (ACS.Models.Tree rate in TempML.Tree)
                {
                    <tr>
                        <td>@Html.DisplayFor(model => rate.Store)@Html.ActionLink("+", "            ScheduleZone", rate, new { @class = "g" })
                        </td>
                    </tr>
                }
            </table>
        </form>
    </div>
    <div class="div" id="mainDiv">
    </div>
    <div class="div" id="Zone">
    </div>
    <div class="div" id="Sell">
    </div>
    <div class="div" id="Meh">
    </div>
    <div class="div" id="Sk">
    </div>
</div>
<script type="text/javascript">
    $(".g").click(function () {
        $("#mainDiv").load("/Home/Zone");
    });
</script>
调用

http 发布操作后,我似乎无法调用div 中的页面。它只返回不在div 中的部分视图。

    public ActionResult Zone(CommisionsTree tree)
    {
        string banner = "2";
        CommissionDAO dao = new CommissionDAO();
        DataSet commissionInfo = dao.GetCommissionRates(tree, banner);
        ModelList ml = new ModelList();
        foreach (DataTable Table in commissionInfo.Tables)
        {
            foreach (DataRow row in Table.Rows)
            {
                Tree commTree = new Tree();
                commTree.Banner = Convert.ToInt32(banner);
                commTree.Store = tree.Store;
                foreach (DataColumn column in Table.Columns)
                {
                    switch (column.ColumnName)
                    {
                        case "SCHED_ZONE":
                            commTree.ScheduleZone = row[column].ToString();
                            break;
                        default:
                            break;
                    }
                }
                ml.CommissionTree.Add(commTree);
            }
            TempData["TempModelList"] = ml;
        }
        return  PartialView(ml);
    }

Ajax 发布到 httpost 操作方法,无需刷新特殊加载

你可以用AjaxLink替换你的link + javascript。

@Ajax.ActionLink("+", "Zone", "Home", new AjaxOptions() { HttpMethod = "GET", InsertionMode = InsertionMode.Replace, UpdateTargetId = "mainDiv" }, htmlAttributes: new { @class="someClasses", id = "anId"})

在这种情况下,它之所以在加载后跟随链接,是因为您需要在 javascript 末尾返回 false。

<script type="text/javascript">
    $(".g").click(function () {
        $("#mainDiv").load("/Home/Zone");
        return false;
    });
</script>