久久久精品2019中文字幕神马_欧美亚洲一区三区_欧美大人香蕉在线_精品88久久久久88久久久_中文字幕一区二区三区在线播放 _精品国产一区二区三区久久影院_欧洲av在线精品_粉嫩av一区二区三区_亚洲欧美一区二区三区极速播放_国产亚洲精品久久

首頁 > 美食

今日播報!小試Blazor——實現Ant Design Blazor動態表單

來源:博客園 時間:2023-06-25 07:30:26

前言

最近想了解下Blazor,于是嘗試使用Blazor寫一個簡單的低代碼框架,于是就采用了Ant Design Blazor作為組件庫


(相關資料圖)

低代碼框架在表現層的第一步則是動態表單,需要將設計時的結構渲染成運行時的表單,本次主要實現動態表單,相關數據接口都以返回固定數據的形式實現

實現

1.項目準備

先通過命令創建一個Ant Design Blazor項目,并加入到空的解決方案當中:

dotnet new antdesign -o LowCode.Web -ho server

由于我們需要寫一些API接口,所以在Startup類中加入控制器相關的代碼:

public void ConfigureServices(IServiceCollection services)        {            services.AddRazorPages();            services.AddControllers();//添加控制器            services.AddEndpointsApiExplorer();            services.AddServerSideBlazor();            services.AddAntDesign();            services.AddScoped(sp => new HttpClient            {                BaseAddress = new Uri(sp.GetService().BaseUri)            });            services.Configure(Configuration.GetSection("ProSettings"));        }        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)        {            if (env.IsDevelopment())            {                app.UseDeveloperExceptionPage();            }            else            {                app.UseExceptionHandler("/Error");                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.                app.UseHsts();            }            app.UseHttpsRedirection();            app.UseStaticFiles();                        app.UseRouting();                        app.UseEndpoints(endpoints =>            {                endpoints.MapBlazorHub();                endpoints.MapFallbackToPage("/_Host");                endpoints.MapControllers();//配置控制器            });        }

2.菜單接口

在項目中新增Services文件夾,添加MenuServices類并填入固定數據,并在Startup類中注冊:

public class MenuService    {        ///         /// 獲取左側導航數據        ///         ///         public virtual MenuDataItem[] GetMenuData()        {            return new MenuDataItem[]            {                new MenuDataItem                {                    Path="/",                    Name="測試模塊",                    Key="Test",                    Icon="smile",                    Children=new MenuDataItem[]                    {                        new MenuDataItem                        {                            Path="/StdForm",                            Name="動態表單",                            Key="Form",                            Icon="plus-square"                        }                    }                }            };        }    }

修改BaseicLayout.razor中@code部分,將_menuData改為從MenuService中獲取:

private MenuDataItem[] _menuData ;    [Inject] public MenuService MenuService { get; set; }    protected override async Task OnInitializedAsync()    {        await base.OnInitializedAsync();        _menuData = MenuService.GetMenuData();    }

3.表單組件接口

創建一個簡單的表單與組件的Model:

錄入控件Input:

public class Input     {        public string Name { get; set; }        public string Value { get; set; }    }

標準表單StandardFormModel:

public class StandardFormModel    {        public StandardFormModel()        {            ArrayInput = new List();        }        public List ArrayInput { get; set; }    }

表單API接口FormController:

[Route("api/[controller]/[action]")]    [ApiController]    public class FormController : ControllerBase    {        [HttpGet]        public StandardFormModel GetFormStruc()        {            var result = new StandardFormModel();            result.ArrayInput.AddRange(new List(){                new Input()                {                    Name="賬號"                },                new Input()                {                    Name="密碼"                }            });            return result;        }    }

4.動態表單頁面

在Pages文件夾下創建一個StdForm.razor和StdForm.razor.cs文件

StdForm.razor.cs(注意partial):

public partial class StdForm    {        public StandardFormModel StandardFormModel { get; set; }        public Form StdFormModel { get; set; }        [Inject]        public HttpClient HttpClient { get; set; }             public void Init()        {            var formStruc = HttpClient.GetFromJsonAsync("api/Form/GetFormStruc").Result;            StandardFormModel= formStruc;        }        protected override async Task OnInitializedAsync()        {            Init();            await base.OnInitializedAsync();                    }    }

StdForm.razor:

@page "/StdForm"
@foreach (var item in StandardFormModel.ArrayInput) { @if (item is Model.Component.Input) { } }

運行效果

總結

在Blazor項目中要訪問API接口則需要注入HttpClient類,使用HttpClient請求API接口即可,也可以直接注入Services調用。

目前僅僅是驗證了動態表單的可能性,其他的組件渲染可以根據Ant Design Blazor官方文檔定義模型結構實現

參考文檔:

Blazor官方文檔

Ant Design Blazor官方文檔

Ant Design Blazor倉庫

相關稿件

今日播報!小試Blazor——實現Ant Design Blazor動態表單

大學獎學金申請理由(獎學金申請理由300 500) 熱資訊

天天滾動:綠軍送走斯瑪特 帕金斯直呼不理解 杰弗森安慰:木已成舟了

薪資專家:湖人不會追歐文 他們專注于留住里夫斯和八村塁-每日播報

2023年4月別克GL8銷量多少? 在美系車中排名怎么樣?

斯瑪特發文向波士頓告別:雖未拿到第18冠但無比驕傲

局地氣溫達40℃!中央氣象臺繼續發布高溫橙色預警

曝具俊曄回韓國,留大S獨自面對風波,誰是真愛與汪小菲對比明顯|天天微速訊

世界關注:3000左右的手機推薦(3000左右的手機推薦2019)

業務員工作總結報告(業務員工作總結) 世界熱推薦

李想,在微博“造車”

“敬禮娃娃”郎錚637分!已收到北大、人大邀請-世界資訊

我的輸入法是什么(我的輸入法無法使用 怎么辦)

顯存不足會怎么樣(顯存不足)

將9月底實現量產 全新一代北京BJ40申報圖

伊能靜罕曬兒女同框照,哈利從美國放假回國|今日關注

全球聚焦:儋州考生 中考期間遇到突發狀況怎么辦?不慌!這里有應對大全

玩逆戰游戲太卡什么原因(玩逆戰不流暢怎么辦)

后風窗玻璃刮水器及洗滌器圖標(前風窗玻璃刮水器及洗滌器圖標)|焦點報道

玩cf卡怎么辦解決方法(玩cf卡怎么辦)

巴基斯坦取消進口限制以滿足國際貨幣基金組織要求_今日熱文

【魅力競演·敘州】三等獎作品展播

心悅俱樂部g分有什么用(心悅g分有什么用)-天天資訊

市場下行對于價值投資來說是好事還是壞事?_每日熱訊

【環球時快訊】據俄羅斯衛星通訊社6月25日報道,俄羅斯總統普京已簽署新法令,宣布9月3日為對日本軍國主義戰爭勝利紀念日暨二戰結束紀念日

環球微速訊:端午假期河南旅游接待1266.3萬人次同比增長48.6%

突發!國泰航空一客機突發故障,11人逃生途中受傷送醫!女乘客還原驚恐一幕:有人打電話給父母一直哭,有一個媽媽抱著孩子一直說對不起……

通訊!歐盟通過第11輪對俄制裁,俄外交部:制裁非法,已及時回應

天天觀焦點:莘縣開展“粽享和諧鄰里情”活動

俄外長:俄白兩國均未違反《不擴散核武器條約》 環球熱門


久久久精品2019中文字幕神马_欧美亚洲一区三区_欧美大人香蕉在线_精品88久久久久88久久久_中文字幕一区二区三区在线播放 _精品国产一区二区三区久久影院_欧洲av在线精品_粉嫩av一区二区三区_亚洲欧美一区二区三区极速播放_国产亚洲精品久久
国产精品成人免费精品自在线观看 | 午夜精品免费在线| 欧美性色黄大片| 91精品欧美福利在线观看| 在线播放日韩导航| 亚洲欧美一区二区三区久本道91| 成人免费视频播放| 亚洲免费av在线| 精品久久久三级丝袜| 在线观看欧美黄色| 国产99久久久国产精品潘金| 欧美经典一区二区三区| 欧美三级在线播放| 日韩国产成人精品| 九九久久精品视频| 国产精品久久久久影院老司| 久久疯狂做爰流白浆xx| 在线不卡一区二区| 久久精品久久精品| 欧美日韩综合一区| 久久综合精品国产一区二区三区 | 亚洲一区二区av在线| 国产99久久久久| 免费人成精品欧美精品| 午夜电影网一区| 成人免费高清视频| 狠狠色综合日日| 亚洲国产色一区| 欧美精彩视频一区二区三区| 免费黄网站欧美| 裸体健美xxxx欧美裸体表演| 欧美日本高清视频在线观看| 欧美老肥妇做.爰bbww| 亚洲免费av观看| 午夜欧美电影在线观看| 日本伊人午夜精品| 另类欧美日韩国产在线| 久久精品国产久精国产爱| 国产一区二区h| 亚洲精品五月天| 青青青爽久久午夜综合久久午夜| 污片在线观看一区二区| 日韩电影免费在线观看网站| 亚洲欧美综合色| 久久久久97国产精华液好用吗| 国产精品日日摸夜夜摸av| 一区二区三区成人| 午夜国产精品影院在线观看| 国产大陆a不卡| 欧美成人a∨高清免费观看| 亚洲视频资源在线| 成人激情免费网站| 国产婷婷色一区二区三区四区| 欧美日韩高清不卡| 国产精品美女一区二区三区| 久久久国产精华| 欧美xxxxx牲另类人与| 亚洲啪啪综合av一区二区三区| 日韩理论片在线| 懂色av一区二区在线播放| 正在播放亚洲一区| 日韩和欧美一区二区三区| 欧美色图一区二区三区| 亚洲一区中文日韩| 欧美日本高清视频在线观看| 欧美日韩一区二区三区四区五区| 亚洲人成精品久久久久久| 成人激情免费视频| 亚洲人吸女人奶水| 欧美一区二区私人影院日本| 2021国产精品久久精品| 国产黄人亚洲片| 亚洲丝袜自拍清纯另类| 欧美日韩免费电影| 国产精品久久久久久久久晋中| 亚洲视频免费在线| 久久69国产一区二区蜜臀| 欧美日韩黄视频| 亚洲h动漫在线| 日韩一区中文字幕| 在线观看日韩av先锋影音电影院| 麻豆专区一区二区三区四区五区| 久久久久久久久久看片| 成人av片在线观看| 亚洲.国产.中文慕字在线| 国产日韩欧美麻豆| 色乱码一区二区三区88| 狠狠色综合日日| 狠狠色综合日日| 久久99精品国产| 成人国产视频在线观看| 国模娜娜一区二区三区| 国内精品国产三级国产a久久| 亚洲在线观看免费视频| 91国内精品野花午夜精品| 激情欧美日韩一区二区| 美女一区二区三区| 久久理论电影网| 国产精品国产三级国产普通话三级| 欧美一区二区在线视频| 精品国产乱码久久久久久免费| 制服丝袜中文字幕一区| 欧美电影免费观看高清完整版在线| 91电影在线观看| 麻豆精品久久久| 久久久国际精品| 欧美国产综合色视频| 9191国产精品| 久久精品国产一区二区三区免费看| 理论电影国产精品| 91丨porny丨户外露出| 欧美精品一区二区三区在线播放| 精品久久久三级丝袜| 亚洲欧美一区二区不卡| 国产激情一区二区三区| 精品裸体舞一区二区三区| 国产精品色在线观看| 日本sm残虐另类| 精品中文字幕一区二区| 成人av午夜电影| 精品国产精品网麻豆系列| 亚洲色图欧洲色图| 欧美性大战久久久久久久| 国产精品激情偷乱一区二区∴| 精品一区二区免费看| 欧美成人高清电影在线| 亚欧色一区w666天堂| 91久久久免费一区二区| 欧美日韩免费视频| 欧美在线影院一区二区| 国产精品高清亚洲| 日韩视频国产视频| 日本一区二区在线不卡| 日本丰满少妇一区二区三区| 精品国内二区三区| 欧美日韩久久一区| 国产精品福利一区| 欧洲在线/亚洲| 日本v片在线高清不卡在线观看| 一本到一区二区三区| 一区二区三区成人在线视频| 在线播放中文一区| 日韩电影免费在线看| 久久色成人在线| 91视频xxxx| 国产精品麻豆久久久| 欧美视频在线一区| 香蕉久久一区二区不卡无毒影院| 欧美日韩免费不卡视频一区二区三区| 精品久久久久久无| 99久久99久久精品免费观看| 亚洲一卡二卡三卡四卡无卡久久| 91精品免费在线| 欧美网站大全在线观看| 成人h动漫精品一区二| 狠狠色丁香婷婷综合| 久久免费国产精品| 精品对白一区国产伦| 欧美一区二区私人影院日本| 美女www一区二区| 一区二区三区四区激情| 亚洲图片激情小说| 五月婷婷综合网| 国产精品不卡在线观看| 色综合天天综合网天天看片| 激情偷乱视频一区二区三区| 国产精品一区免费在线观看| 国产日产欧美一区| 欧美中文字幕久久| 久久精品免费在线观看| 日本91福利区| 色婷婷综合久久| 精品国产一区二区三区不卡| 欧美日韩中文国产| 国产成人av电影| 欧美一级黄色片| 亚洲r级在线视频| 成人h动漫精品| 国产剧情一区在线| www.日韩大片| 亚洲日本在线a| 国产精品美女久久久久aⅴ国产馆| 国产综合色在线视频区| 亚洲日本在线看| 亚洲码国产岛国毛片在线| 2欧美一区二区三区在线观看视频| 制服.丝袜.亚洲.中文.综合| 欧美aaa在线| 日韩视频在线你懂得| 欧美激情一区二区三区全黄| 日韩高清电影一区| 欧美蜜桃一区二区三区| 久久精品99久久久| 久久久久久免费| 欧美性欧美巨大黑白大战| 欧美精品亚洲一区二区在线播放| 一区二区免费视频| 国产精品69久久久久水密桃| 国产成人午夜高潮毛片| 国产精品人妖ts系列视频|