MVC HtmlHelper внешний вид - PullRequest
       7

MVC HtmlHelper внешний вид

2 голосов
/ 18 марта 2011

У меня есть класс, и я вызываю его со страницы просмотра бритвы в asp.net mvc3.Как я могу передать HtmlHelper из представления в мой класс?Я могу сделать это, но тогда у меня не все методы, например "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);
        }
    }

Ответы [ 3 ]

1 голос
/ 11 октября 2011

Проблема пропускала использования.

using System.Web.Mvc.Html;

делает методы видимыми. Все остальное не нужно.

0 голосов
/ 18 марта 2011

Вы действительно не хотите делать логику представления в ваших классах, если ваш класс не предназначен для функциональности представления. В этом случае вы можете просто сделать его методом расширения из HtmlHelper.

См. Эти ресурсы:

http://www.dotnetcurry.com/ShowArticle.aspx?ID=406

http://www.asp.net/mvc/tutorials/creating-custom-html-helpers-cs

0 голосов
/ 18 марта 2011

RenderAction() и RenderPartial() - это методы расширения HtmlHelper , которые необходимо включить в пространство имен System.Web.MVC .

Update

Вы можете использовать @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);

  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...