將數(shù)據(jù)傳遞到所有頁(yè)面通用的布局我有一個(gè)有布局頁(yè)面的網(wǎng)站。但是,此布局頁(yè)面包含所有頁(yè)面模型必須提供的數(shù)據(jù),例如頁(yè)面標(biāo)題,頁(yè)面名稱以及我們實(shí)際執(zhí)行某些操作的HTML幫助程序所在的位置。每個(gè)頁(yè)面都有自己的視圖模型屬性。我怎樣才能做到這一點(diǎn)?鍵入布局似乎是一個(gè)壞主意但我如何通過(guò)這些信息呢?
3 回答

夢(mèng)里花落0921
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
我在布局中使用了RenderAction html helper for razor。
@{ Html.RenderAction("Action", "Controller"); }
我需要它用于簡(jiǎn)單的字符串。所以我的動(dòng)作返回字符串并在視圖中輕松寫下來(lái)。但是如果您需要復(fù)雜的數(shù)據(jù),可以返回PartialViewResult和model。
public PartialViewResult Action() { var model = someList; return PartialView("~/Views/Shared/_maPartialView.cshtml", model); }
您只需要將您創(chuàng)建的部分視圖“_maPartialView.cshtml”的模型開(kāi)頭
@model List<WhatEverYourObjeIs>
然后,您可以使用html在該局部視圖中使用模型中的數(shù)據(jù)。

神不在的星期二
TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
另一種選擇是創(chuàng)建一個(gè)單獨(dú)的LayoutModel類,其中包含布局中需要的所有屬性,然后將此類的實(shí)例填充到ViewBag中。我使用Controller.OnActionExecuting方法來(lái)填充它。然后,在布局開(kāi)始時(shí),您可以從ViewBag中拉回此對(duì)象并繼續(xù)訪問(wèn)此強(qiáng)類型對(duì)象。
- 3 回答
- 0 關(guān)注
- 438 瀏覽
添加回答
舉報(bào)
0/150
提交
取消