Пользовательские помощники HTML в ASP.NET MVC 2 - PullRequest
1 голос
/ 13 июня 2010

Я хочу создать помощника по нумерации страниц. Единственные параметры, которые ему нужны, это currentpage, pagecount и routename. Тем не менее, я не знаю, возможно ли использовать возвращаемое значение другого помощника HTML внутри определения моего помощника HTML. Я имею в виду конкретно Html.RouteLink. Как я могу сделать что-то подобное в определении класса

using System;
using System.Web.Mvc;

namespace MvcApplication1.Helpers
{
     public static class LabelExtensions
     {
          public static string Label(this HtmlHelper helper, string routeName, int currentpage, int totalPages)
          {
               string html = "";
               //Stuff I add to html
               //I'd like to generate a similar result as the helper bellow. 
               //This code does not work, it's just an example of what I'm trying to accomplish
               html .= Html.RouteLink( pageNo, routeName, new { page = pageNo - 1 } );
               //Other stuff I do the html
               return html;

          }
     }
}

Спасибо.

1 Ответ

3 голосов
/ 13 июня 2010

Как правило, да, вы можете использовать результаты других функций Html Helper в своих пользовательских функциях.Исключение составляют все, которые пишут непосредственно в поток ответов, а не возвращают строковое значение.

Я сам делал такие вещи несколько раз, и это работает просто отлично ... вот пример, который я простополностью подготовленный прямо сейчас, основанный на чем-то, что я сделал, у меня сейчас нет кода для под рукой:

public static string RssFeed(this HtmlHelper helper, string url)
{
    StringBuilder sb = new StringBuilder();
    sb.Append(GetRSSMarkup(url));  // This generates the markup for the feed data
    sb.Append(helper.ActionLink("Go Home","Index","Home"));
    return sb.ToString();
}
...