【问题标题】:How to return partial view from inside the HtmlHelper?如何从 HtmlHelper 内部返回部分视图?
【发布时间】:2011-02-11 02:29:48
【问题描述】:

我有以下代码:

 public static PartialViewResult DateTime(this HtmlHelper helper)
        {


             return System.DateTime.Now.ToLongTimeString(); 
        }

现在我想从 DateTime 方法中返回一个 Partial 视图。但是辅助实例没有任何局部视图的方法。

更新 2:

我认为一个更好的问题是如何从 HtmlHelper(自定义)内部返回部分视图的 HTML

【问题讨论】:

  • 局部视图是 PartialViewResult 类型的...你想在这里完成什么?
  • 我正在尝试创建一个扩展方法,可用于返回多个项目的共享视图。

标签: asp.net asp.net-mvc


【解决方案1】:

看起来您正在尝试创建一个返回字符串而不是实际视图的帮助程序。这很好(并且比返回部分视图的助手更有意义),只需进行这些小调整:

public static MvcHtmlString DateTime(this HtmlHelper helper)
{
   return MvcHtmlString.Create( System.DateTime.Now.ToLongTimeString() );
} 

【讨论】:

    【解决方案2】:

    在我看来,这有点打破了 MVC 模式。您需要一个负责ViewController。我会创建一个控制器,它有一个Action,它返回你的View

    如果除了将其用作局部视图之外,您不想做任何其他事情,那么可以使用一些属性。这样你就可以坚持 MVC 模式,并且可以使用扩展名@Html.RenderPartial

    您返回DateTime 的示例可以按照@Robert Levy 所说的那样解决,但如果您真的想尝试从Controller 外部返回View,我强烈建议您不要这样做。

    【讨论】:

      猜你喜欢
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多