簡體   English   中英

創建一個基本視圖模型,但是似乎無法在OnActionExecuting中加入它

[英]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?

OnActionExecuting還不成熟 ,無法研究模型。

在調用action方法之前調用。

您可以在OnActionExecuted中看到模型。

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.

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