[英]How do I extract an ID, select the correct view model from a list and pass this inside a partial?
我是MVC的新手。
我有以下情形:我在QuoteDetails頁面上有一個報價列表。 我單擊報價,然后進入ItemDetails頁面,在這里可以查看相關項目的列表。
一個項目屬於一個報價,一個報價可以包含多個項目。 這些項目列在ItemDetails頁面的側欄上。
@model QuotePageViewModel
<div class="list-group">
@{bool firstItem = true;}
@foreach (var quote in Model.LiveQuotes)
{
if (firstItem.Equals(true))
{
firstItem = false;
<a href="#" id="@quote.Item.ItemID" class="list-group-item active">
<span class="glyphicon glyphicon-file"></span>@quote.Item.Title<span class="badge">ItemID: @quote.Item.ItemID</span>
</a>
}
else
{
<a href="#" id="@quote.Item.ItemID" class="list-group-item">
<span class="glyphicon glyphicon-file"></span>@quote.Item.Title<span class="badge">ItemID: @quote.Item.ItemID</span>
</a>
}
}
</div>
<div class="col-sm-9">
@Html.Partial(MVC.Item.Views.ViewNames._TabbedItemDetailsPanel, ViewData)
</div>
這將按預期列出我的所有項目。
當我選擇一個項目時,我想在我的局部中獲取正確的ItemViewModel。 最好的方法是什么?
我有一些想法,但我不太確定如何實現它們。 例如,一個是:
處於活動狀態的類,使用linq來獲取Item ID,以過濾LiveQuotes並選擇QuotesOverviewViewModel將此傳遞到局部中。
還是ajax調用更適合於此?
我有一個QuotePageViewModel看起來像這樣:
public class QuotePageViewModel : PageViewModel
{
public IEnumerable<QuotesOverviewViewModel> LiveQuotes { get; set; }
}
public class QuotesOverviewViewModel : DataViewModel
{
public QuoteViewModel Quote { get; set; }
public CustomerViewModel Customer { get; set; }
public QuoteStatusViewModel QuoteStatus { get; set; }
public OriginatorViewModel Originator { get; set; }
public ItemViewModel Item { get; set; }
}
public class ItemViewModel : DataViewModel
{
public int ItemID { get; set; }
public int? QuoteID { get; set; }
public string Title { get; set; }
public int? Quantity { get; set; }
public Money Price { get; set; }
public QuoteViewModel Quote { get; set;}
}
希望很清楚。 請問您是否不明白。 謝謝
看來我看錯了方向。
以下為我解決。
我擴展了QuotePageViewModel
public class QuotePageViewModel : PageViewModel
{
public IEnumerable<QuotesOverviewViewModel> LiveQuotes { get; set; }
public PaginatedViewModel<QuotesOverviewViewModel> ArchivedQuotes { get; set; }
public ItemViewModel SelectedItem { get; set; }
}
我在ViewModelService中設置值。 在頁面加載中,我添加了以下內容:
<a href="@Url.Action(MVC.Item.ActionNames.ItemDetail, MVC.Item.Name, new { itemId = @quote.Item.ItemID })" id="@quote.Item.ItemID" class="list-group-item active">
更新了部分:@ Html.Partial(MVC.Item.Views.ViewNames._TabbedItemDetailsPanel,Model.SelectedItem)
希望這對某人有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.