簡體   English   中英

如何定義僅與某些控制器一起使用以及存在某些模型時的菜單ASP.NET MVC4

[英]How to define a menu for use with only certain controllers and when certain model is present ASP.NET MVC4

我有一個子菜單,僅在使用某些控制器且存在某種型號時才想顯示。 我創建了一個局部文件,並嘗試在_Layout.cshtml中呈現它,但出現錯誤,指出傳遞的模型項的類型為...,但是此詞典需要該類型的項...

我可以在控制器的每個視圖中放入菜單,並傳遞正確類型的模型,但這似乎不太靈活。

目前,我正在檢查我的模型在_submenu部分中是否為null

@if(Model != null)

但是,這將使任何類型的模型通過,然后在類型錯誤的情況下出錯。

我認為最好的方法是指定@ Html.Partial僅在使用某些控制器時運行。 還是有一種方法可以驗證模型類型,以便如果傳遞給視圖的模型不正確,則代碼不會運行?

聽起來您需要模型是動態的(有關更多信息, 請訪問此網站請訪問此網站 ),然后您可以在視圖中檢查模型的類型並采取相應的措施:

@model dynamic

@{
    ViewBag.Title = "IndexNotStonglyTyped";
}

<h2>Index Not Stongly Typed</h2>

<p>
@if(Model is MyType) {
   <span>got myType!</span>
}

</p>

注意:原始示例取自上述網站。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM