这是这种情况:
我有一个 ASP.NET MVC 4 应用程序。当我运行应用程序时,我转到一个页面,控制器上的 Index - 操作将 Guid 作为 id - 参数。使用该 ID,我从数据库中获取项目列表并将其放入 ViewModel。这个 ViewModel 被传递给一个 View,它将所有项目作为 ActionLink 列出(必要时可以更改)。当我单击其中一个项目时,我想根据所选链接的 id 获取其他项目的列表,并在第一个列表旁边显示这个新列表。
但这是我的问题(以及我被困两天的地方):最好的方法是什么?转到新页面或使用局部视图。因为我一直在尝试两者,显然我一定做错了一些事情,因为似乎没有任何工作。我不需要任何 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);
}