Razor頁面與ASP.NET MVC開發使用的視圖組件非常相似,它們具有所有相同的語法和功能。
最關鍵的區別是模型和控制器代碼也包含在Razor頁面中。它更像是一個MVVM(Model-View-ViewModel)框架,它支持雙向數據綁定,更簡單的開發體驗,具有獨立的關注點。
您可以認為Razor頁面是WebForms的演變。
https://www.cnblogs.com/tdfblog/p/asp-net-razor-pages-vs-mvc.html
ASP.NET Core 和 Entity Framework Core
使用依賴注入注冊上下文
using ContosoUniversity.Data; using Microsoft.EntityFrameworkCore;
public void ConfigureServices(IServiceCollection services) { services.AddDbContext<SchoolContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddMvc(); }
打開appsettings.json文件並添加連接字符串
{ "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ContosoUniversity1;Trusted_Connection=True;MultipleActiveResultSets=true" }, "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } } }
ASP.NET Core Razor 頁面路由,更改默認的根文件夾
public void ConfigureServices(IServiceCollection services) { services .AddMvc(). AddRazorPagesOptions(options => { options.RootDirectory = "/Content"; }); }
如果您使用的是PageModel
,那么是這樣實現的:
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.Mvc.Rendering;
namespace RazorPages.Pages
{
public class ProductModel : PageModel
{
public int Id { get; set; }
public void OnGet(int id)
{
Id = id;
}
}
}
@page "{id}" @model ProductModel <p>The Id is @Model.Id</p>
public void ConfigureServices(IServiceCollection services) { services .AddMvc() .AddRazorPagesOptions(options => { options.Conventions.AddPageRoute("/extras/products", "product"); }); }
context.Response.ContentType = "text/html"; await context.Response.SendFileAsync($@"{env.WebRootPath}/errors/500.html");
支持的操作系統
https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/index?view=aspnetcore-2.1&tabs=aspnetcore2x#common-errors
IIS部署問題 HTTP Error 502.5 - Process Failure
下載.net framework 4.6.1安裝包
已禁用 CoreWebEngine 或 W3SVC 服務器功能
(W3SVC 服務器功能)找到World Wide Web Publishing Service服務項是禁用
安裝ASP.NET Core 模塊
https://www.microsoft.com/net/download
安裝.NET SDK
https://www.microsoft.com/net/download/dotnet-core/2.0
測試是否安裝成功