这是情况:
我有一个ASP.NET MVC 4应用程序。当我运行应用程序时,转到一个页面,控制器上的Index动作接受一个Guid作为id参数。使用该id从数据库获取项目列表并将其放入ViewModel中。将此ViewModel传递给View,该View将所有项目列为ActionLink(如果需要可以更改)。当我点击其中一个项目时,我想根据所选链接的id获取其他项目的列表,并将此新列表显示在第一个列表旁边。
但这是我的问题(我已经卡了两天): 最佳方法是什么?转到新页面还是使用部分视图? 因为我既尝试了转到新页面也尝试了使用部分视图,显然我肯定做错了一些事情,因为似乎没有一种方法可行。我不需要任何AJAX之类的帮助程序,只需要正确的方法来完成这项工作... :)
提前感谢!
更新:我已经有的代码
视图:
我有一个ASP.NET MVC 4应用程序。当我运行应用程序时,转到一个页面,控制器上的Index动作接受一个Guid作为id参数。使用该id从数据库获取项目列表并将其放入ViewModel中。将此ViewModel传递给View,该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)
}
Controller
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);
}