我有一个课程,并在asp.net mvc3的剃刀视图中调用它。 如何将HtmlHelper从View传递给我的班级? 我可以做到这一点,但后来我没有所有的方法,例如“RenderAction”和“RenderPartial” 不见了。
更新
我想调用部分视图,因为它更容易实现(由最终用户),并且不需要完整编译我的网站。
请注意,以下示例并不是我想要做的事情;)我认为我的例子很愚蠢,但它总体上显示了我想要做的事情。
的ViewPage:
HtmlString str = new Renderer().Render(this.Html)
代码(后面):
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);
}
}
答案 0 :(得分:1)
问题是缺少使用。
using System.Web.Mvc.Html;
使方法可见其他所有内容都是不必要的。
答案 1 :(得分:0)
RenderAction()
和RenderPartial()
是HtmlHelper的扩展方法,您需要包含System.Web.MVC命名空间。
<强>更新强>
您可以使用@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);
}
}
答案 2 :(得分:0)
除非您的课程专门用于演示功能,否则您真的不希望在课程中执行演示逻辑。在这种情况下,您可能只想将其作为HtmlHelper的扩展方法。
请参阅以下资源:
http://www.dotnetcurry.com/ShowArticle.aspx?ID=406
http://www.asp.net/mvc/tutorials/creating-custom-html-helpers-cs