1.前期準備
新建乙個mvc專案,並新增home和about兩個控制器
在這兩個控制器對應新增index頁面
namespacestudy_mvc_route.controllers
public
string regex(int year,int month,int
day)
--";
//$是在字串中內嵌引數}}
}
namespace2.新增路由study_mvc_route.controllers}}
主要屬性如下:
name: 路由名稱url: 和url匹配的正規表示式,用{}表示乙個引數變數,可以為空;無{}則是乙個硬性的匹配要求
defaults: 預設,匹配上url後,若url引數為空,則使用預設動作 controller = 預設控制器, action = 預設動作, id = 引數
constraints: url引數約束
usingsystem;
using
system.collections.generic;
using
system.linq;
using
system.web;
using
system.web.mvc;
using
system.web.routing;
namespace
study_mvc_route
.axd/
");//
忽略路由
//--------------------------------新增路由------------------------------------------
//以test開始的url
//url沒有引入controller引數,所以controller使用預設值,若不給引數賦值,也使用預設值
routes.maproute(name:
"test",
url:
"test//",
defaults:
new
);//route的書寫可以省略命名引數,即name、url、defaults這些命名引數可以省略,如下
//url為about可以訪問home/index
routes.maproute("
about1
", "
about
", new );
//url為about訪問about/index
routes.maproute("
about2
", "
", new );
//加大括號表示引數,不加則為乙個普通字串鏈結,是乙個硬性的匹配要求
//傳參對比3.擴充套件//使用constraints做引數約束
//home/regex_2014_05_19
routes.maproute(
name:
"regex",
url:
"/___",
defaults:
new ,
constraints:
new
", month = @"
\d", day = @"
\d" }//
@"\d"表示輸入四位數字,@表取消\的轉譯效果
); //普通傳參
//home/regex?year=2014&month=05&day=19
routes.maproute(
name:
"default",
url: "//
",defaults:
new );}
}}
使用乙個路由擴充套件類對瀏覽器進行判斷
public在routeconfig中新增這個類的例項(也就是新增乙個路由規則)class
agentroute : routebase
else
}public
override
virtualpathdata getvirtualpath(requestcontext requestcontext, routevaluedictionary values)
}
routes.add(new agentroute());//這行**放在不同的路由下面有不同的效果比如:1、放在最前面
這樣在進行其他路由判斷之前,會先進行這個判斷,即每次訪問url都會先判斷是否是edge瀏覽器
若是,命中路由
若不是,return null ;繼續往下判斷
2、要是將其放在路由test後面
那edge也可以訪問 test// 這個規則的url,因為這個路由規則會先被命中
效果展示:
chrome瀏覽器,正常訪問
edge瀏覽器,會訪問edge/index頁面,因為它命中了agentroute
層層剖析 service
service有localservice和remoteservice 啟動方式有bindservice和startservice 生命週期分別為oncreateservice onbindservice onunblindservice ondestroyservice oncreateservic...
層層遞進 廣度優先搜尋
從誰開始就把誰存到佇列裡,從它開始進行以後的步驟,廣搜的話會遇到許多分支一類的東西,每遇到乙個分支就要push進佇列裡,每次處理判斷時都要處理最前邊的,即front 處理的同時也要將其刪掉pop 方便可以一直處理front 的那個。在處理的過程中也要判斷找尋是否是結果,進行判斷。進行廣搜要靈活將st...
層層遞進 廣度優先搜尋
從題目可以看出,廣度優先搜尋是一層一層的搜尋,而深搜是一根筋,一直搜到底o o哈哈 到底怎麼實現廣搜呢?深搜是遞迴,想必大家可能恨死遞迴了。廣搜不用遞迴,就用迴圈和佇列就夠!這個題目,從起點開始,到達終點最短路徑是多少步?圖中鎖是障礙物。先構建乙個佇列,還是用結構體。還得有乙個陣列book來記錄走過...