ASP.NET MVC 中宿主WCF Rest 服务的解决方法
我這里就是通過routes.MapRoute(參數)中的參數進行處理的。MapRoute的重載如下:
RouteTable.Routes.MapRoute( string name, string url); RouteTable.Routes.MapRoute( string name, string url, object defaults); RouteTable.Routes.MapRoute( string name, string url, string[] namespaces); RouteTable.Routes.MapRoute( string name, string url, object defaults, object constraints); RouteTable.Routes.MapRoute( string name, string url, object defaults, string[] namespaces); RouteTable.Routes.MapRoute( string name, string url, object defaults, object constraints, string[] namespaces);?
name參數:規則名稱可以隨意取,但是不能重名,否則會報錯。路由集合中已經存在為“default”的路由。路由名必須是唯一的。
Url參數:url獲取數據的規則,這里不是正則表達式,將要識別的參數括起來就可以了,比如{controller}/{action}
注:最少只需要傳遞name,url參數,就可以建立一條Routing規則。比如實例中可改為: RouteTable.Routes.MapRoute("Default", "{controller}/{action}");,
defaults參數:url參數中的默認值,如果一個URL只有controller:localhost /home/,而我們只建立了一條url獲取數據規則:{controller}/{action},這時就會為action參數設置defaults參數中規定的默認值,defaults是Object類型,可以傳遞一個匿名類型來初始化默認值。(action也就是index調用方法Userdetail())
new { controller = "Home", action = "Userdetail" });
constraints參數:用來限定每個參數的規則或Http請求的類型,constraints屬性是一個RouteValueDictionary對象,也就是一個字典代表,字典的值可以有兩種:a,用來定義正則表達式的字符串,正則表達式不區分大小寫。B,用于實現IRouteConstraint接口且包含Match方法的對象。通過正則表達式可以規定參數格式,比如controller參數只能為4位數字:new {controller=@”\d{4}”}
public static void RegisterRoutes(RouteCollection routes) {//忽略對.axd文件的Route,也就是和WebForm一樣直接去訪問.axd文件routes.IgnoreRoute("{resource}.axd/{*pathInfo}");routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");routes.MapRoute("Default", // Route name"{controller}/{action}/{id}", // URL with parametersnew { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaultsnew { controller = @"^\b(?!GetRegSourceData)\w*\b$"});routes.Add(new ServiceRoute("GetRegSourceData", new WebServiceHostFactory(), typeof(GetRegSourceData)));}查看以上代碼 其中new { controller = @"^\b(?!GetRegSourceData)\w*\b$"}? 過濾掉Controller為GetRegSourceData的URI.
然后就會去匹配WCF Rest Service的Route
routes.Add(new ServiceRoute("GetRegSourceData", new WebServiceHostFactory(), typeof(GetRegSourceData)));?
轉載于:https://www.cnblogs.com/aehyok/archive/2012/11/21/2781067.html
總結
以上是生活随笔為你收集整理的ASP.NET MVC 中宿主WCF Rest 服务的解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 灰帽黑客:正义黑客的道德规范、渗透测试、
- 下一篇: 2019Q1欧洲智能手机出货量 华为1