これは状況です:
ASP.NETMVC4アプリケーションがあります。アプリケーションを実行すると、ページに移動し、コントローラーのIndex-アクションがGuidasid-パラメーターを取ります。そのIDを使用して、データベースからアイテムのリストを取得し、それをViewModelに配置します。このViewModelは、すべてのアイテムをActionLinkとしてリストするビューに渡されます(必要に応じて変更できます)。アイテムの1つをクリックすると、選択したリンクのIDに基づいて他のアイテムのリストを取得し、最初のリストのすぐ横にこの新しいリストを表示します。
しかし、これは私の質問です(そして私が2日間立ち往生しているところ):これを行うための最良の方法は何ですか?新しいページに移動するか、部分ビューを使用します。私は両方を少し試してきたので、明らかにうまくいかなかったので、いくつか間違ったことをしたに違いありません。私はAJAXのものやそのようなヘルパーを必要としません、これを成し遂げるための正しい方法だけです... :)
前もって感謝します!
更新:私がすでに持っているコード
意見
@foreach (var order in Model.Orders)
{
<p>@Html.ActionLink(order.Name,
"OrderItems",
"OrdersController",
new { id = order.Id },
null)
</p>
}
@if (Model.Detail != null)
{
@Html.Partial("_OrderItemsByOrder", Model)
}
コントローラ
public ActionResult Index(Guid id)
{
var orders = Services.GetOrders(id);
var viewModel = new OrdersViewModel { Orders = orders };
return View(viewModel);
}
public ActionResult OrderItems(Guid id, OrdersViewModel model)
{
var orderItems = Services.GetOrderLines(id);
var viewModel = new OrdersViewModel
{
Orders = model.Orders,
Detail = new OrderDetailViewModel { OrderItems = orderItems }
};
return PartialView(viewModel);
}