2011-03-18 41 views
2

我有一个类,并从asp.net mvc3中的剃刀视图页调用它。 如何将HtmlHelper从视图传递给我的课程? 我可以做到这一点,但然后我得到并不是所有的方法,例如“RenderAction”和“RenderPartial” 丢失。MVC HtmlHelper外部查看

更新

我要调用的局部视图,因为它更容易实现(最终用户)和犯规要求我的网站的完整的编译。

请注意,下面的例子并不是我想做的事情;)我认为我的例子很愚蠢,但它通常显示我想要做什么。你需要

public class Renderer 
    { 
     HtmlHelper _html; 

     public Renderer(HtmlHelper html) 
     { 
      this._html = html; 
     } 

     public HtmlString Render() 
     { 
      string result = string.Empty; 
      // getting html from a partial view 
      return new HtmlString(result); 
     } 
    } 
+1

你有'使用System.Web.Mvc.Html'吗? – 2011-03-18 17:02:46

+0

不错,使用System.Web.Mvc.Html使该方法呈现。但有没有办法调用“RenderAction”并取回HtmlString? – dknaack 2011-03-18 17:13:48

+0

我不能在这里发表我的片段,请看下面的“答案”。谢谢! – dknaack 2011-03-18 17:44:25

回答

1

的问题是缺少usings。

using System.Web.Mvc.Html; 

使方法可见其他一切是不必要的。

0

RenderAction()RenderPartial()HtmlHelper扩展方法包括System.Web.MVC命名空间:

的ViewPage: HtmlString str = new Renderer().Render(this.Html)

代码(后面)。

更新

你可以使用@Html.RenderPartial("view")

或者你可以创建HtmlHelper

public static class HtmlHelperExtensions { 

    public static IHtmlString MyRenderer(this HtmlHelper helper) { 

    string html = String.Empty; 
    //generate HTML here 

    return new MvcHtmlString(html); 

    } 

} 
+0

不错,使用System.Web.Mvc.Html的方法使方法呈现。但有没有办法调用“RenderAction”并取回HtmlString? – dknaack 2011-03-18 17:21:51

+0

您可以从HtmlHelper调用渲染动作。你能提供一些你正在尝试做的事情的代码,我们可能会更好地帮忙吗? – 2011-03-18 17:24:28

+0

我无法在这里提供我的“示例”作为评论,请参阅下面的“答案” – dknaack 2011-03-18 17:36:46