我有以下頂部的頁面:如何將模型從剃鬚刀頁面傳遞到其主頁面/佈局頁面?
@model AppMainModel
@{
ViewData["Title"] = "Home Page";
}
我想用AppMainModel及其屬性在其主/頁面佈局。如果可能的話,強烈鍵入(例如,避免ViewData等)。
這可能嗎?
我有以下頂部的頁面:如何將模型從剃鬚刀頁面傳遞到其主頁面/佈局頁面?
@model AppMainModel
@{
ViewData["Title"] = "Home Page";
}
我想用AppMainModel及其屬性在其主/頁面佈局。如果可能的話,強烈鍵入(例如,避免ViewData等)。
這可能嗎?
ViewModel數據可用於佈局頁面。如果您希望在佈局頁面中強類型化,可以考慮使用公共數據來創建頁面viewmodel類。如果不是,只需使用ViewData的動態特性傳遞常見的東西。如果看起來合適,您甚至可以應用全局過濾器來設置公用數據。 Solution From here
您可以在佈局頁面上設置的@model
還有:
@model AppMainModel
<html>
<head>
<title>@Model.Title</title>
</head>
...
</html>
但是,你必須確保你每次使用此佈局你通過一個從AppMainModel
繼承的模型。
爲了避免是非強類型的_layout頁面上,我建議你看看下面的偉大@jgauffin博客文章Getting information into the Layout without using ViewBag.
使用在總結一LayoutViewModel:
OnResultExecuting()
方法WebViewPage
,並在web.config
註冊,使其能夠使用Viewbase佈局模型作爲pageBaseType
舉個例子:我用這個方法來傳遞元字段值到我的_Layout頁面。
我假設你的意思是佈局頁面?只需在其中添加'@model AppMainModel',但目前還不清楚爲什麼要將佈局頁面綁定到模型 –
@StephenMuecke是,佈局頁面。引導程序導航欄位於佈局頁面中,我需要它作爲數據驅動。這就是原因。 – AngryHacker
問題是您的佈局現在只能被具有'@model AppMainModel'的視圖使用。我懷疑你真正想要的是使用'@ Html.Action()'來調用一個返回導航欄的局部視圖的方法 –