【问题标题】:Working of HTML/AJAX Helpers in .Net MVC.Net MVC 中 HTML/AJAX 助手的工作
【发布时间】:2017-03-22 09:30:11
【问题描述】:

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

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

我的猜测:

  1. 那个特定的HelperHttpContext提取它
  2. this HtmlHelper htmlHelper 参数包含所有相关信息 到请求。

我正在尝试创建一个 custom helper,用户应该在其中传递操作方法的名称,然后它神奇地获取其各自的 controller .

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

  • {控制器,主页}
  • {动作,索引}
  • {id, null}

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

预期的输出应该是-

  • {控制器、设备}
  • {行动,建议}
  • {id, null}

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

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

【问题讨论】:

    标签: c# asp.net-mvc html-helper httpcontext


    【解决方案1】:

    所有 Html 助手都可以访问 HtmlHelper 类。原因是这些助手只是 HtmlHelper 类的扩展方法。

     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()
    

    【讨论】:

      猜你喜欢
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 2016-05-08
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多