HTML/AJAX Helpers 在 .Net MVC 中的工作

Working of HTML/AJAX Helpers in .Net MVC

我认为这对其他人来说可能很明显,但我无法理解这些类型的方法重载的工作原理。 我们只传递 操作方法 名称的那些。

这些@Html.Helpers如何获得预期的控制器

我的猜测:

  1. 那个特定的 HelperHttpContext
  2. 中提取它
  3. this HtmlHelper htmlHelper参数保存了所有相关的信息 根据要求。

我正在尝试创建一个自定义帮助程序,用户应该在其中传递操作方法的名称,它神奇地获得其各自的控制器.

当我在 运行 期间检查 this HtmlHelper htmlHelper 中的 route-values 时,他们向我展示了这个 -

当我在 运行 期间检查 HttpContext 时,它是 null

预期输出应该是-

如果有人可以提供默认 @Html.Helpers 幕后工作的示例,那就太好了。

更新 我确实找到了我要找的东西。 这是问题的link及其答案

所有 Html 帮助者都可以访问 Html 帮助者 class。原因是这些助手只是 HtmlHelper class.

的扩展方法
 public static class HelperExtensions
 {
     public static string ControllerName(this HtmlHelper helper)
     {
               string name = helper.ViewContext.Controller.GetType().Name
               return String.Format("<span'>{0}</span>", name);
          }
     }
}

所以关于当前请求的一切都在那里。

View.cshtml

@Html.ControllerName()