[英]Asp.Net Core and Scaffold
Asp.Net Razor Page的自動腳手架的生成與bool數據類型兼容?
我問這個問題,因為我正在學習本教程: https : //docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/model 。 在某一點上,在創建POCO類之后,配置dbContext和遷移,我運行此命令以自動生成腳手架
dotnet aspnet-codegenerator razorpage -m Movie -dc MovieContext -udl -outDir Pages\Movies --referenceScriptLibraries
它的美麗,但只是工作,如果我的POCO類沒有bool類型。
示例POCO類:
using System;
namespace RazorPagesMovie.Models
{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public bool Active { get; set; }
}
}
有了這個實現,我會在嘗試創建一個電影時得到這個錯誤:
'CreateModel'不包含'Active'的定義,並且沒有擴展方法'Active'可以找到接受類型'CreateModel'的第一個參數(你是否缺少using指令或匯編引用?)
任何想法?
也許是我使用SQLite作為數據庫這一事實的必要信息......
而CreateModel類:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.Rendering;
using RazorPagesMovie.Models;
namespace RazorPagesMovie.Pages.Movies
{
public class CreateModel : PageModel
{
private readonly RazorPagesMovie.Models.MovieContext _context;
public CreateModel(RazorPagesMovie.Models.MovieContext context)
{
_context = context;
}
public IActionResult OnGet()
{
Movie = new Movie
{
Title = "The Good, the bad, and the ugly",
Genre = "Western",
Price = 1.19M,
ReleaseDate = DateTime.Now,
Active = true
};
return Page();
}
[BindProperty]
public Movie Movie { get; set; }
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
_context.Movie.Add(Movie);
await _context.SaveChangesAsync();
return RedirectToPage("./Index");
}
}
}
問題出在這一行:
@Html.DisplayNameFor(model => model.Active))
在Create.cshtml
,使用它時, model
引用CreateModel
而不是Movie
。 相反,你需要:
@Html.DisplayNameFor(model => model.Movie.Active))
我在ASP.NET Core GitHub站點上提出了這個錯誤,並在.NET Core 2.0中修復了它: https : //github.com/aspnet/Scaffolding/issues/830
但是看起來好像修復程序沒有移植到2.1所以我在這里提出了一個新的錯誤: https : //github.com/aspnet/Scaffolding/issues/855
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.