[英]Create a base view model, but can't seem to hook into it in OnActionExecuting
我創建了一個baseviewmodel,我的其他強類型視圖模型繼承了該baseviewmodel。
BaseController:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var baseViewModel = ViewData.Model as BaseViewModel;
if (baseViewModel != null)
{
// set common properties that I want to use in all views
}
}
現在,當我在if群集上設置斷點時,似乎baseViewModel始終為null。
如何將基本ViewData.Model設置為BaseViewModel?
ViewData
用於將模型從控制器動作發送到視圖。
您的OnActionExecuting
掛鈎在調用action方法之前...因此這就是為什么您將viewdata的模型視為null的原因。 嘗試改用OnActionExecuted
。
然后,您可以檢查如果模型是使用關鍵字,它的基本類型is
這樣:
if(ViewData.Model != null && ViewData.Model is BaseModel){
var base = ViewData.Model as BaseModel;
// set common properties
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.