2011-03-18 39 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