TagHelperドロップダウンボックス

登録データを作成します。1.

1)Startup.cs

    パブリック クラススタートアップ
    { 
        公共 ConfigureServices(IServiceCollectionサービス)
        { 
            services.AddMvc(); 
            services.AddHttpContextAccessor(); services.AddTransient
             <ICountryManager、CountryManager> (); 
        } 

        公共 ボイド設定(IApplicationBuilderアプリIHostingEnvironment ENV)
        { 
            場合(env.IsDevelopment())
            { 
                app.UseDeveloperExceptionPage()。
            } 
            app.UseStaticFiles()。

            app.UseMvc(); 

        } 
    }

2)モデル

パブリック クラス
    { 
        ///  <要約> 
        /// 编码
         ///  </要約> 
        公共の 文字列コード{ 取得しますセット; } 

        ///  <要約> 
        /// 名称
         ///  </要約> 
        パブリック ストリング名{ 得ますセット; } 
    }

3)データ

使用してCoreTest.Modelを。
使用してSystem.Collections.Genericを。

名前空間CoreTest.Manager 
{ 
    パブリック インターフェースICountryManager 
    { 
        IEnumerableを <国> GETALL(); 
    } 

    パブリック クラスCountryManager:ICountryManager 
    { 
        公共の 読み取り専用リスト<国> _countryList。

        公共CountryManager()
        { 
            _countryList = 新しいリスト<国> 
            { 
                新しい国{コード= " 001 "、名前=" 中国" }、
                 新しい国{コード= " 002 "、NAME = " 日本" }、
                 新しい国{コード= " 003 "、NAME = " USA " }、
            }; 
        } 

        公共のIEnumerable <国> GETALL()
        { 
            戻り_countryList。
        } 
    } 

}

4)TagHelperドロップダウンボックス制御オブジェクト

    [HtmlTargetElement(" 国リスト" )]
     パブリック クラスCountryListTagHelper:TagHelper 
    { 
        プライベート 読み取り専用ICountryManager _countryManager。

        公共の 文字列の SelectedValueの{ 取得しますセット; } 

        公共CountryListTagHelper(ICountryManager countryManager)
        { 
            _countryManager = countryManager。
        } 

        公共 オーバーライド ボイドプロセス(TagHelperContextコンテキスト、TagHelperOutput出力)
        { 
            output.TagName =選択
            output.Content.Clear(); 
            foreachのVARの項目_countryManager.GetAll())
            { 
                VAR選択= "" ;
                もし(!SelectedValueの= nullを && SelectedValue.Equals(item.Code、StringComparison.CurrentCultureIgnoreCase))
                { 
                    選択 = " 選択= \"「\選択" ; 
                } 
                VAR listItemの= $ " <オプション値= \" {item.Code} \」{選択}> {item.Name} <; 
                output.Content.AppendHtml(listItemの)。
             } 
        } 
    }

5)ページの参照を

@page 
@model CoreTest.Pages.EditModel @addTagHelper
 *、Microsoft.AspNetCore.Mvc.TagHelpers 
@addTagHelper * 、CoreTest 
@ { 
}
 <フォームメソッド= " ポスト" > 
    <P> 
        <ラベル>姓名</ label>は
        <INPUTタイプ= " テキスト" ASP-  = " Model.Input.Name @ " /> 
    </ P> 
    <P> 
        <ラベル>年龄:</ label>は
        <入力タイプ= " " ASP-  = "Model.Input.Age @ " /> 
    </ P> 
    <P> 
        <ラベル>性别:</ label>は
        < 選択 ASP-  = " Model.Input.Sex @ " > </ 選択 > 
    </ P> 
    <P> 
        <ラベル>电话号码:</ラベル> 
        の<input type = " テキスト" ASP-  = " Model.Input.Phone @ " /> 
    </ P> 
    <P> 
        <ラベル>国籍:</ label>は<国リスト選択値= "002" > </国リスト> 
    </ P> 
</フォーム>
        

 

効果:

 

 

 

 

注意:

1)スタートアップ登録インターフェースサービスオブジェクトを覚えている(赤セクション1.1)

2)別のページにTagHelperHelper

@addTagHelper *、Microsoft.AspNetCore.Mvc.TagHelpers

3)プロジェクトを使用して、すべてのTageHelper(@addTagHelper型名、のAssemblyName)

@addTagHelper *、CoreTest
// モード1、アセンブリのすべてのTaghelper 
@addTagHelper * 、CoreTest 

// 第二の方法は、明示的なパスを指定 
@addTagHelper " CoreTest.CountryListTagHelper、CoreTest " 

// 3つの方法、ファジーマッチング 
@addTagHelper " CoreTest.CountryListを*、CoreTestを"

 

 

感謝します。https://www.cnblogs.com/hager/p/5817335.html




 

おすすめ

転載: www.cnblogs.com/dzw159/p/12008693.html