首先,我必须说我在这里有点脑筋急转弯。我可能对 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 post 操作后,我似乎无法调用 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);
}