日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

Scaffolding Template on Asp.Net Core Razor Page

發布時間:2023/12/4 asp.net 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scaffolding Template on Asp.Net Core Razor Page 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Scaffolding Template Intro

我們知道在Asp.Net MVC中,如果你使用的EF的DBContext的話,你可以在vs中通過右鍵解決方案-添加控制器-添加包含視圖的控制器,然后vs會根據你選擇的Model自動生成相應的CURD的控制器和View,非常便利,這種就叫做 ASP.NET Scaffolding Template,之前雪燕大大有過一篇介紹,有興趣可以看看【傳送門】

大家知道近期Asp.Net Core2.0發布了,微軟也推出了Razor Page來作為默認的Asp.Net Core Web項目,但一開始并沒有提供Scaffolding Template(后簡稱ST)功能,使我們每次對于一個Model需要進行4-5個頁面和PageModel的編寫,代碼量比Asp.Net MVC多了不少,好在ST及時出現,不過這次并沒有結合到VS中,我們需要通過添加一個生成包及CMD命令來完成,雖然復雜了點,但至少編碼量少了,Let’s do it!

Hello Scaffolding Razor Page

Step 1 :?創建Razor Page 項目

Step 2 : 創建一個Model,在這里我們創建一個Blog實體類:

public class Blog { ?
?
public int BlogId { get; set; } ? ?
?public string Title { get; set; } ?
?
public string Author { get; set; } ?
?
public DateTime CreatedDate { get; set; } }


Step 3 : 創建DbContext:


public class BlogDbContext : DbContext { ?
??
public BlogDbContext(DbContextOptions<BlogDbContext> options) : base(options){} ?

?
public DbSet<Blog> Blogs { get; set; } ?

?
protected override void OnModelCreating(ModelBuilder modelBuilder){modelBuilder.Entity<Blog>().ToTable("Blog");} }


Step 4 : 配置連接字符串并把這個DbContext通過DI的方式注冊到項目容器中

public void ConfigureServices(IServiceCollection services) {services.AddDbContext<BlogDbContext>(options =>options.UseSqlServer(Configuration.GetConnectionString("BlogDbContext")));services.AddMvc(); }

記得在配置文件(appsettings.json)中加入connectString:

{ ?
"ConnectionStrings": { ?
?
"MovieContext": "Server=(localdb)\\mssqllocaldb;Database=DemoDb;Trusted_Connection=True;MultipleActiveResultSets=true"} }

Step 5 : 安裝CodeGeneration package,工具-Nuget包管理器-程序包管理控制臺

Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 2.0.0

Step 6 : 添加數據遷移-更新到數據庫:

Add-Migration Initial Update-Database

[這里一定要做下遷移,否則生成代碼會不成功,我估計生成代碼會去讀取數據庫]

Step 7 : 打開終端(CMD or Powershell)

先移步到項目目錄(Program.cs和Startup.cs這個目錄)

我的是:E:\project\aspnet\Demos\WebApplication4\WebApplication4

然后輸入以下命令:

dotnet aspnet-codegenerator razorpage -m Blog -dc BlogDbContext -udl -outDir Pages\Blogs –referenceScriptLibraries

ok,如果順利你就能看到如下提示:

我們可以看到它自動創建了相應的View和PageModel。

雖然沒有MVC那么便利,但至少也節約了我們不少時間。

Issues

自動生成的DbContext的DbSet名字不正確

我們看下Create.cshtml.cs代碼,其中一段:

public async Task<IActionResult> OnPostAsync() { ?
? ?
if (!ModelState.IsValid){ ? ? ? ?return Page();}_context.Blog.Add(Blog);
? ?
await _context.SaveChangesAsync(); ?
? ??
return RedirectToPage("./Index"); }


可以看到 它使用了Blog作為實體類的集合名了,但在Step 3中,我使用的是Blogs,這應該是個bug,想提交的,但沒有找到相應的項目。

寫在最后

后天就是偉大的祖國生日了,大家節日快樂!明天去HK迪士尼好期待,嘿嘿。

后面我會把用Razor Page遇到的問題總結放上來,非常看好它,相信會越來越火的。

PS:asp.net core QQ學習群:376248054 通關密碼:cnblogs(無密碼一律不通過)

原文地址:http://www.cnblogs.com/inday/p/scaffolding-template-on-asp-net-core-razor-page.html


.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

總結

以上是生活随笔為你收集整理的Scaffolding Template on Asp.Net Core Razor Page的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。