カスタムHtmlヘルパーをビルドしてサブセクションに入れる方法はありますか? I:Razor HtmlHelpers with sub-sections?
@Html.Buttons.Gray
@Html.Buttons.Blue
@Html.Tables.2Columns
@Html.Tables.3Columns
ありがとう。
カスタムHtmlヘルパーをビルドしてサブセクションに入れる方法はありますか? I:Razor HtmlHelpers with sub-sections?
@Html.Buttons.Gray
@Html.Buttons.Blue
@Html.Tables.2Columns
@Html.Tables.3Columns
ありがとう。
ヘルパーは単なる拡張メソッドです。したがって、オブジェクトを返すヘルパーを作成して、メソッド呼び出しを連鎖させることができます。 @Html.Button("Text").Grey()
。
public ButtonHelper
{
public string Text {get; set;}
public MvcHtmlString Grey()
{
return MvcHtmlString.Create("<button class='grey'>"+ Text +"</button>");
}
}
public static class Buttons
{
public static ButtonHelper Button(this HtmlHelper, string text)
{
return new ButtonHelper{Text = text};
}
}
私はそういうことはできないと思います。列挙型を作成し、基準色にそれを使用するので、同じよう:
public enum ButtonColor
{
Blue = 0x1B1BE0,
Gray = 0xBEBECC
};
public static class Extensions
{
public static MvcHtmlString Button(this HtmlHelper htmlHelper, string Value, ButtonColor buttonColor)
{
string renderButton =
string.Format(
@"<input type=""button"" value=""{0}"" style=""background-color: {1}"" />",
Value,
buttonColor.ToString()
);
return MvcHtmlString.Create(renderButton);
}
}
あなたがテーブルのためのものと同じタイプを行うことができますが、これはあなたの一般的なアイデアを与える必要があります。これは通常のヘルパー拡張メソッドですが、目的の最終結果を得るためにパラメータとしてenum valをとります。
あなたは(ボタンを回避したい場合)関数で、カスタムのHtmlHelperを作成することで、このような何かを達成する方法についてはhttp://haacked.com/archive/2011/02/21/changing-base-type-of-a-razor-view.aspxを参照してください。@MyAppHtml.Buttons.Gray
あなたがあれば代わりに代わりのHtmlHelper上書きすることができるかもしれません厳密に欲しい@Html.Buttons.Gray
素晴らしいです!ありがとうございました。 – Saxman