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);
}
你可以用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>