登録データを作成します。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