Asp.net mvc 给定htmlHelper+;操作名称,如何计算控制器名称?

Asp.net mvc 给定htmlHelper+;操作名称,如何计算控制器名称?,asp.net-mvc,routing,html-helper,Asp.net Mvc,Routing,Html Helper,ActionLink(HtmlHelper,string linktext,string action)是如何找出正确的路由的 如果我有这个=> HtmlHelper.ActionLink("Edit","Edit") Mvc会自动找出正确的路线 i、 e.-如果控制器是产品,它将使用hrefProduct/edit呈现锚定 那么-当我得到htmlHelper+操作名称组合时,如何计算控制器名称?如果您的htmlHelper看起来像: public static string MyHelper

ActionLink(HtmlHelper,string linktext,string action)是如何找出正确的路由的

如果我有这个=>

HtmlHelper.ActionLink("Edit","Edit")
Mvc会自动找出正确的路线

i、 e.-如果控制器是产品,它将使用href
Product/edit
呈现锚定


那么-当我得到htmlHelper+操作名称组合时,如何计算控制器名称?

如果您的htmlHelper看起来像:

public static string MyHelper(this HtmlHelper htmlHelper,
                             ... some more parameters ...) {

    return ... some stuff ...
}
然后从您的助手访问:

RouteData routeData = htmlHelper.ViewContext.RouteData;
string controller = routeData.GetRequiredString("controller");
RoutedData对象包含ASP.NET路由为当前请求处理的所有值。这将包括路由中的参数名和值,例如“{controller}/{action}/{id}”。许多内置ASP.NET MVC帮助程序从那里获取“环境”数据,这样开发人员就不必为他们使用的每个帮助程序键入这些数据

您还可以从以下位置将完整的源代码下载到ASP.NET MVC:


  • 我以前见过/使用过这个。只是有点困惑。谢谢。:)