0

私は MVC の初心者で、ヘルパーに関する記事を読んだばかりです。今、私はビューにこのコードを持っています:

<div class="display-label">Ingredients: 
        <% foreach (var e in Model.Products_Ingredients)
        {%>
            <%: e.Ingredient.Name%><br />
            <%: e.Percentage%> 
                <%if (e.Percentage != null) 
                {%>
                    %
                <%}%>
                <br />
        <%}%>
    </div>

そのコードを次のような単純なものに置き換えるヘルパーを作成するにはどうすればよいですか。

<div class="display-label">Ingredients: <%: MyHelpers.Ingredients %> </div>

ありがとうございました!

4

2 に答える 2

1

HtmlHelper拡張メソッドを作成する必要があります

public namespace User.Extensions

    public static HtmlHelperExtensions
    {
        public static string Ingredients(this HtmlHelper, Product_Ingredients productIngredients) 
        {
            string result = string.Empty;
            // loop through your ingredients and build your result, could use TagBuilder, too
            return result;
        }
    }
}

その後、あなたは呼び出すことができます<%=Html.Ingredients(Model.Products_Ingredients) %>

このアセンブリ参照をページに追加してください

<%@ Import Namespace=User.Extensions" %>

またはWeb.Configにアクセスして、すべてのページにアクセスできるようにします

<pages>
    <namespaces>
        <add namespace="User.Extensions" />
于 2010-09-01T13:26:01.053 に答える
0
  public class MyHelpers
   {
    public static string Ingredients(IEnumerable<Products_Ingredients> pi)
    {
      //html code as string 
      // <%: pi.Ingredient.Name%><br />
      //  <%: pi.Percentage%> 
      //      <%if (pi.Percentage != null) 
      //      {%>
      //          %
      //      <%}%>
      //      <br />
        return htmlCode;
    }
  }

あなたのページに追加

  <%@ Import Namespace=namespace.MyHelpers" %>

  <div class="display-label">Ingredients: <%: MyHelpers.Ingredients(Model.Products_Ingredients) %> </div>
于 2010-09-01T13:29:25.273 に答える