我不是MVC中的高級開發人員。ASP.Net MVC:條件路由如何工作
我剛剛看了一個帖子,從這個網址Defining conditional routes
的問題是,如果用戶以管理員身份登錄,然後他會重定向到管理器,如果用戶登錄使用普通用戶那麼他將被重定向爲用戶控制器。
這是事情已經完成,但我只是不明白代碼是如何工作的。所以幫助我理解代碼。
using System;
using System.Web;
using System.Web.Routing;
namespace Examples.Extensions
{
public class MustBeAdmin : IRouteConstraint
{
public MustBeAdmin()
{ }
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
// return true if user is in Admin role
return httpContext.User.IsInRole("Admin");
}
}
}
routes.MapRoute(
"Admins", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Admin", action = "Index", id = UrlParameter.Optional }, // Parameter default
new { controller = new MustBeAdmin() } // our constraint
);
1)布爾匹配()是任何在內置方法,或者它的用戶定義一個?
2)已經採取行動,並控制提這樣的路線
new { controller = "Admin", action = "Index", id = UrlParameter.Optional }
,但再次提起同樣喜歡這樣
new { controller = new MustBeAdmin() }
3)這是什麼線的含義{ controller = new MustBeAdmin() } ?
沒有具體說明如果用戶以普通用戶身份登錄,那麼他將被重定向到用戶控制器。
請幫我理解代碼。
謝謝
爲什麼負標記。我想了解路由約束如何工作,這就是爲什麼我發佈它。 – Thomas
智能感知和互聯網應該爲您解答這些問題http://stephenwalther.com/archive/2008/08/07/asp-net-mvc-tip-30-create-custom-route-constraints – Jasen