2014-02-17 2 views
2

Я пытался выяснить, как зарегистрировать класс расширения ярлыков в проекте ServiceStack.Html/Razor. Я использую параметр «Автономный, самостоятельный, размещаемый HttpListener», но я не могу решить, как зарегистрировать или использовать новое расширение @Html для использования на страницах бритвы.ServiceStack.Html Пользовательские расширения ярлыков

namespace Tribe.Guru.SelfHost 
{ 
    public static class LabelExtensions 
    { 
     public static MvcHtmlString LabelFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, object htmlAttributes) 
     { 
      return LabelFor(html, expression, new RouteValueDictionary(htmlAttributes)); 
     } 
     public static MvcHtmlString LabelFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, IDictionary<string, object> htmlAttributes) 
     { 
      ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData); 
      string htmlFieldName = ExpressionHelper.GetExpressionText(expression); 
      string labelText = metadata.DisplayName ?? metadata.PropertyName ?? htmlFieldName.Split('.').Last(); 
      if (String.IsNullOrEmpty(labelText)) 
      { 
       return MvcHtmlString.Empty; 
      } 

      TagBuilder tag = new TagBuilder("label"); 
      tag.MergeAttributes(htmlAttributes); 
      tag.Attributes.Add("for", html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(htmlFieldName)); 
      tag.SetInnerText(labelText); 
      return MvcHtmlString.Create(tag.ToString(TagRenderMode.Normal)); 
     } 
    } 
} 

Любая помощь будет принята с благодарностью, так как я не могу найти документацию по ней и не могу заставить ее работать.

ответ

1

Вы также должны добавить любые пространства имен конфигурации бритвы Web.config, например:

<system.web.webPages.razor> 
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
<pages pageBaseType="ServiceStack.Razor.ViewPage"> 
    <namespaces> 
    <add namespace="ServiceStack"/> 
    <add namespace="ServiceStack.Html"/> 
    <add namespace="ServiceStack.Razor"/> 
    <add namespace="ServiceStack.Text"/> 
    <add namespace="ServiceStack.OrmLite"/> 
    <add namespace="Tribe.Guru.SelfHost"/> 
    </namespaces> 
</pages> 
</system.web.webPages.razor> 
Смежные вопросы