まず最初に、ここで少し頭の体操をしていると言わなければなりません。私は 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);
}