我有一個產品串列頁面,其中包含一個沒有主導航的產品串列

在View從Product List上面的頁面單擊鏈接時,我可以導航到Overview正確傳遞所選產品 ID 的頁面,但是當我從主導航單擊供應商鏈接時,我想將與概覽頁面相同的 id 值傳遞給供應商頁面,因為一旦我點擊查看鏈接一切都與所選產品有關。處理這個問題的最佳方法是什么?我盡量避免使用TempDataor Session。
_Navigation.cshtml 如下圖所示
<nav id="navigation" class="main-navigation">
<ul id="nav_list" class="top-level-nav">
<li class="nav-item">
<a href="/" class="first-level-link">Overview</a>
</li>
<li class="nav-item">
<a asp-action="Index" asp-controller="Supplier" asp-area="Supplier">Suppliers</a>
</li>
</ul>
</nav>
概覽 操作
[HttpGet]
public async Task<IActionResult> Overview(int id)
{
var productInfo = await _productService.GetProductDetailsByID(id);
var productDTO = _mapper.Map<ProductOverview>(productInfo);
return View(productDTO);
}
產品概覽 查看型號
public class ProductOverview
{
public int ID { get; set; }
public string ProductCode { get; set; }
public string Type{ get; set; }
public string ProductName { get; set; }
}
供應商行動
[HttpGet]
public async Task<IActionResult> Index(int id)
{
var suppliers= await _suppliersService.GetAllSuppliers(3); //need help pass the selected productID
var suppliersDTO = _mapper.Map<Suppliers>(suppliers);
return View(suppliersDTO);
}
供應商視圖模型
public class Supplier
{
public int ID { get; set; }
public int ProductID { get; set; }
public string SupplierName { get; set; }
}
uj5u.com熱心網友回復:
如果您的概覽和供應商視圖將 Navigation視為布局,或者Navigation作為布局的一部分呈現,則一種選擇是創建一個基本或抽象模型類,您的外部布局(以及導航部分視圖,如果它是分開的) ) 從消費。
例如,您可能有這樣一個類:
public abstract class LayoutBaseClass
{
public abstract int ProductId { get; }
}
然后,您的 ProductOverview 和供應商類可以從這個基類派生。布局視圖可以依賴抽象/基類模型,使這些共享屬性可用于布局,因此您可以將它們包含在導航中生成的 URL 中,而更細粒度的視圖可以繼續參考更具體的類. 回傳視圖時,您無需更改控制器中的任何內容,在這種情況下 - ASP .NET Core 會將模型傳播到布局和視圖中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/328457.html
