我正在編寫一個ActionFilter並需要從ActionExecutingContext參數(我想實現基於快速和基於登錄的安全性)獲取區域名稱。可能嗎?從ActionExecutingContext獲取區域名稱
2
A
回答
2
從MVC源代碼:
static string GetAreaName(RouteBase route)
{
var area = route as IRouteWithArea;
if (area != null)
{
return area.Area;
}
var route2 = route as Route;
if ((route2 != null) && (route2.DataTokens != null))
{
return (route2.DataTokens["area"] as string);
}
return null;
}
static string GetAreaName(RouteData routeData)
{
object obj2;
if (routeData.DataTokens.TryGetValue("area", out obj2))
{
return (obj2 as string);
}
return GetAreaName(routeData.Route);
}
+0
不幸的是這些方法在內部類中:) – SiberianGuy
+0
但是MVC期貨中有類似的公共類 – SiberianGuy
0
使用
@Html.Controller();
@Html.Action();
@Html.Id();
@Html.Area();
代碼
public static class HtmlRequestHelper
{
public static string Id(this HtmlHelper htmlHelper)
{
var routeValues = HttpContext.Current.Request.RequestContext.RouteData.Values;
if (routeValues.ContainsKey("id"))
return (string)routeValues["id"];
else if (HttpContext.Current.Request.QueryString.AllKeys.Contains("id"))
return HttpContext.Current.Request.QueryString["id"];
return string.Empty;
}
public static string Controller(this HtmlHelper htmlHelper)
{
var routeValues = HttpContext.Current.Request.RequestContext.RouteData.Values;
if (routeValues.ContainsKey("controller"))
return (string)routeValues["controller"];
return string.Empty;
}
public static string Action(this HtmlHelper htmlHelper)
{
var routeValues = HttpContext.Current.Request.RequestContext.RouteData.Values;
if (routeValues.ContainsKey("action"))
return (string)routeValues["action"];
return string.Empty;
}
public static string Area(this HtmlHelper htmlHelper)
{
var dataTokens = HttpContext.Current.Request.RequestContext.RouteData.DataTokens;
if (dataTokens.ContainsKey("area"))
return (string)dataTokens["area"];
return string.Empty;
}
}
相關問題
- 1. ASP.Net MVC獲取區域名稱
- 2. 如何獲取區域名稱?
- 3. 如何從ActionExecutingContext獲取MethodInfo?
- 4. 從域名獲取組織名稱
- 5. 選擇從區域名稱
- 6. 從Javascript獲取HTML區域標籤名稱?
- 7. 從Google地圖中的街道地址獲取區域名稱
- 8. 獲取域名dns名稱和域名平面名稱
- 9. 獲取Glassfish2域的名稱
- 10. DNS區域名稱
- 11. 如何從ActionExecutingContext或AuthorizationContext獲取ActionDescriptor?
- 12. 從ActionExecutingContext獲取始發端口?
- 13. 如何從ActionExecutingContext獲取路由模板
- 14. 使用MaxMind的GeoLite獲取區域名稱
- 15. 如何獲取當前系統區域設置名稱?
- 16. 如何使用座標獲取當前區域名稱?
- 17. 獲取已編碼的區域名稱-HBase
- 18. 獲取控制器中的區域名稱
- 19. 如何獲取Google Map傳遞區域名稱?
- 20. 使用jQuery地址選擇器獲取區域名稱
- 21. 從demangled名稱獲取錯位名稱
- 22. Magento:區域API名稱= null
- 23. 從國家/地區代碼獲取國家/地區名稱
- 24. 如何從域名獲取網站名稱?
- 25. 從字符串URL獲取域名和頁面名稱
- 26. 從域\別名組合中獲取顯示名稱
- 27. 如何從python中的URL獲取域名(名稱+ TLD)
- 28. 從FQDN獲取域名?
- 29. 從url獲取子域名?
- 30. PHP從URL獲取域名
*可能* [ASP.NET MVC的重複 - 獲取當前區域名稱中查看或控制器](http://stackoverflow.com/questions/27236 89/asp-net-mvc-get-current-area-name-in-view-or-controller) – bzlm