我在部分页面中使用自定义HtmlHelper。
示例:
/Home/Index - Is the Main Page with Index View
/Home/Partial - Is the Partial Action with Partial - A Partial View
在索引视图中:
Html.RenderAction("Partial");
在部分视图中:
我在htmlhelper中使用自定义htmlhelper我需要获取请求来自哪里的URL?
让它说它应该像“/ Home / Partial”
如何在我的htmlhelper方法
中获得此功能答案 0 :(得分:7)
根据您的需要,有几种方法可以做到这一点。您的HtmlHelper的 ViewContext 属性将具有您需要的有关特定请求的所有内容:HttpContext,RequestContext,RouteData,TempData,ViewData等。
要获取请求的当前路径,请尝试helper.ViewContext.HttpContext.Request.Path
。这将返回实际的请求路径,如果路径在URL中是显式的,则可能是“/”或“/ home / index”。
我不确定你为什么要“/ home / partial”。由于这是部分视图,因此请求总是来自其他地方,例如。 “/家/索引”。
无论如何,您可以检查 RouteData 并获取(部分)动作和控制器以及其他路线值:
public static string TestHelper(this HtmlHelper helper)
{
var controller = helper.ViewContext.RouteData.Values["controller"].ToString();
var action = helper.ViewContext.RouteData.Values["action"].ToString();
return controller + "/" + action;
}
如果在您的索引视图(Index.aspx)中调用,它将返回“主页/索引”。
如果在部分视图(Partial.aspx)中调用,则会返回“主页/部分”。
希望有所帮助。