2

有没有办法使用 ASP.NET Razor 语法从请求中获取区域组件?

http://localhost:12345/SomeController/SomeAction
http://localhost:12345/MyArea/AnotherController/AnotherAction

我想使用 Razor 干净可靠地获取 URL 的“MyArea”部分。

最好的方法是什么?

4

3 回答 3

3

我实际上使用了这个:

var area = ViewContext.RouteData.DataTokens["area"];
于 2013-02-01T20:24:22.377 回答
2

我在另一篇文章中找到了这个:

RouteValueDictionary 的字符串 URL

var request = new HttpRequest(null, "http://localhost:3333/Home/About", "testvalue=1");
var response = new HttpResponse(new StringWriter());
var httpContext = new HttpContext(request, response);
var routeData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(httpContext));

然后获取该区域:

string area = routeData.DataTokens["area"].ToString();

或者,您可以只使用:

var action = RouteData.Values["area"];

祝你好运。

于 2013-02-01T19:41:01.390 回答
0

这应该为你做。

@ViewContext.Controller.ValueProvider.GetValue("area").RawValue.ToString()
于 2013-02-01T19:45:05.137 回答