2

ご列席の皆様、こんにちは。

Javaから来たRazorは初めてです。ヘルパーの役割について少し混乱しています。同じことを行う C# クラスを定義するのとどう違うのでしょうか? クラスの作成とそのクラスのメソッドの呼び出しにヘルパーを使用するのはいつですか?

おそらく、参考のためにこの例を使用できます。

Web アプリケーションをプログラミングするときに、ヘルパーとクライアント側 Javascript をどのように組み合わせればよいでしょうか? かなり重なっているような?

一番、

ジョルジュ

4

2 に答える 2

1

したがって、ヘルパーを定義する方法は少なくとも2つあります。これが1つの方法です。

namespace MvcHelpers.Helpers
{
    public class ButtonHelper
    {
        public static MvcHtmlString SpecialButton(string id)
        {
          return new MvcHtmlString(String.Format("<input id=\"{0}\" type=\"button\" value=\"Special\"/>", id));
        }
    }
}

これは、「C#クラス」と言うときに参照しているものだと思いますが、実際には、ビューでレンダリングされるHTMLの出力を容易にするヘルパーにすぎません。

これは、おそらくあなたが「ヘルパー」と呼んでいるヘルパーを設計するための別の方法です。

namespace MvcHelpers.Helpers
{
    public static class ButtonHelperExtension
    {
        public static MvcHtmlString SpecialButton(this HtmlHelper helper, string id)
        {
          return new MvcHtmlString(String.Format("<input id=\"{0}\" type=\"button\" value=\"Special\"/>", id));
        }
    }
}

これはヘルパー拡張機能と呼ばれ、他のすべての標準HTMLヘルパーと同じように参照できるようになりました。これが、Razorビューでこれら2つのタイプのヘルパーを参照する方法です。

@{
    ViewBag.Title = "Home";
}
@using MvcHelpers.Helpers;

<h2>Home Page</h2>

@ButtonHelper.SpecialButton("button1")
<br />
@Html.SpecialButton("button2")

どちらの手法でも、まったく同じ結果が得られます。Html.SpecialButtonとして参照されるのは、拡張メソッドです。これに対する唯一の利点は、それがHTMLヘルパーであり、他の関数を実行していないことは明らかであるということです。HTMLヘルパーの使用に精通している人は、InteliSenseを使用すると新しい関数が表示されるようになります。ただし、表示するには、適切なuses句を入力する必要があります。したがって、セマンティクスがわずかに異なる同じ結果になります。

于 2012-11-21T20:10:45.197 に答える
0

ヘルパーは、レスポンシブ Web アプリケーションの構築を可能にするテキスト ボックス、ボタン、リンクなどの HTML コントロールの作成を支援するものと想定されています。また、mvc には、Html ヘルパーと Ajax ヘルパーの 2 種類のヘルパーがあります。JavaScript でヘルパーを使用するには、Ajax ヘルパーを使用する必要があります。とにかく、このリンクにアクセスして、mvc ヘルパーとカスタム ヘルパーの作成方法を読んでください。

MVC ヘルパーの作成

MVC ヘルパーの学習

于 2012-11-21T14:35:16.313 に答える