這種情況:新視圖或局部視圖
我有一個ASP.NET MVC 4應用程序。當我運行該應用程序時,我轉到一個頁面,並且控制器上的Index - action採用Guid作爲id - 參數。使用該ID,我從數據庫中獲取項目列表並將其放入ViewModel中。這個ViewModel被傳遞給一個視圖,它將所有的項目列爲一個ActionLink(如果需要可以更改)。當我點擊其中一個項目時,我想根據所選鏈接的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);
}
我對你正試圖返回給用戶的東西有點困惑。您是否試圖返回訂單列表,然後能夠點擊/選擇它們並查看該訂單的詳細信息? – John