有没有办法使用 ASP.NET Razor 语法从请求中获取区域组件?
http://localhost:12345/SomeController/SomeAction
http://localhost:12345/MyArea/AnotherController/AnotherAction
我想使用 Razor 干净可靠地获取 URL 的“MyArea”部分。
最好的方法是什么?
有没有办法使用 ASP.NET Razor 语法从请求中获取区域组件?
http://localhost:12345/SomeController/SomeAction
http://localhost:12345/MyArea/AnotherController/AnotherAction
我想使用 Razor 干净可靠地获取 URL 的“MyArea”部分。
最好的方法是什么?
我实际上使用了这个:
var area = ViewContext.RouteData.DataTokens["area"];
我在另一篇文章中找到了这个:
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"];
祝你好运。
这应该为你做。
@ViewContext.Controller.ValueProvider.GetValue("area").RawValue.ToString()