ASP.net中Core自定義View查找位置的實(shí)例代碼
.NET Core 的內(nèi)容處處可見,刷爆全球各大社區(qū),所以,老周相信各位大伙伴已經(jīng)看得不少了,故而,老周不考慮一個(gè)個(gè)知識(shí)點(diǎn)地去寫,那樣會(huì)成為年度最大的屁話,何況官方文檔也很詳盡。老周主要扯一下大伙伴們?cè)谌腴T的時(shí)候可能會(huì)疑惑的內(nèi)容。
ASP.NET Core 可以在一個(gè)項(xiàng)目中混合使用 Web Pages 和 MVC ,這是老周最希望的,因?yàn)檫@樣會(huì)變得更靈活。Web Pages 類似于我們過去的 Web 開發(fā)方式,以頁面為單位,此模型側(cè)重于功能劃分。而 MVC 側(cè)重于數(shù)據(jù),有什么樣的數(shù)據(jù)模型就有什么樣的 Controller,有什么樣的 Controller 就會(huì)對(duì)應(yīng)什么樣的 Action ,而 Action 又會(huì)有對(duì)應(yīng)的 UI,即 View。所以說 MVC 是以數(shù)據(jù)為核心的。
PopulateValues():作為一種指定參數(shù)的方式存在,您的視圖查找將根據(jù)每個(gè)請(qǐng)求而變化.由于您沒有填充它,視圖引擎使用先前請(qǐng)求中的緩存值.
public class ThemeViewLocationExpander : IViewLocationExpander
{
public IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context, IEnumerable<string> viewLocations)
{
string theme = context.Values["theme"];
if (string.IsNullOrWhiteSpace(theme))
{
theme = "default";
}
string[] newLocation = { $"Views/{theme}/{{1}}/{{0}}.cshtml"};
return viewLocations.Union(newLocation);
}
public void PopulateValues(ViewLocationExpanderContext context)
{
context.Values["theme"] = context.ActionContext.HttpContext.Request.Query["theme"].ToString();
}
}
//配置模版視圖路徑
services.Configure<RazorViewEngineOptions>(options =>
{
options.ViewLocationExpanders.Add(new ThemeViewLocationExpander());
});
到此這篇關(guān)于ASP.net中Core自定義View查找位置的實(shí)例代碼的文章就介紹到這了,更多相關(guān)Core自定義View查找位置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Asp.net treeview實(shí)現(xiàn)無限級(jí)樹實(shí)現(xiàn)代碼
最近研究了一下treeview,發(fā)現(xiàn)有兩種實(shí)現(xiàn)無限級(jí)樹的方法,文字不想多寫,直入主題。2009-09-09
asp.net 生成數(shù)字和字母組合的隨機(jī)數(shù)
asp.net下生成數(shù)字跟字母組合的隨機(jī)數(shù),提高驗(yàn)證安全。2009-03-03
動(dòng)態(tài)ItemTemplate的實(shí)現(xiàn)(譯) - item,template
動(dòng)態(tài)ItemTemplate的實(shí)現(xiàn)(譯) - item,template...2007-02-02
asp.net不用設(shè)置iis實(shí)現(xiàn)url重寫 類似偽靜態(tài)路由
說到不用設(shè)置iis,主要是為了實(shí)現(xiàn)在虛擬主機(jī)或是拿不到iis操作限的時(shí)候,不能添加isap又想實(shí)現(xiàn)類似于靜態(tài)化的程序?qū)崿F(xiàn)方式,先聲明,這里最終要實(shí)現(xiàn)的效果是,最終可以用12345.html替換show.aspx?id=12345這樣的地址訪問功能,支持任意擴(kuò)展名及無擴(kuò)展2014-01-01
Entity?Framework生成DataBase?First模式
本文詳細(xì)講解了Entity?Framework生成DataBase?First模式的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03

