首页
归档
留言
广告合作
友链
美女主播
Search
1
博瑞GE车机升级/降级
5,146 阅读
2
Mac打印机设置黑白打印
4,517 阅读
3
修改elementUI中el-table树形结构图标
4,516 阅读
4
Mac客户端添加腾讯企业邮箱方法
4,351 阅读
5
intelliJ Idea 2022.2.X破解
4,060 阅读
Java
HarmonyOS Next
Web前端
微信开发
开发辅助
App开发
数据库
随笔日记
登录
/
注册
Search
标签搜索
Spring Boot
Java
Spring Cloud
Mac
mybatis
WordPress
Nacos
Spring Cloud Alibaba
Mybatis-Plus
jQuery
Java Script
asp.net
微信小程序
Sentinel
UniApp
MySQL
asp.net core
IntelliJ IDEA
Jpa
树莓派
Laughing
累计撰写
570
篇文章
累计收到
1,424
条评论
首页
栏目
Java
HarmonyOS Next
Web前端
微信开发
开发辅助
App开发
数据库
随笔日记
页面
归档
留言
广告合作
友链
美女主播
搜索到
2
篇与
的结果
2019-02-26
ASP.NET Core之NLog使用
添加NLog插件修改NLog配置文件可以通过Nuget安装,NLogConfigure手工添加NLog.Configure文件,如下using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using NLog; using Web.Models; namespace Web.Controllers { public class HomeController : Controller { private readonly ILogger<HomeController> _log; public HomeController(ILogger<HomeController> log) => _log = log; static Logger logger = LogManager.GetCurrentClassLogger(); public IActionResult Index() { logger.Info("测试日志乱码"); return View(); } public IActionResult Privacy() { return View(); } [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] public IActionResult Error() { return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); } } }修改StartUp.cs文件public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { app.UseRequestIP(); loggerFactory.AddNLog(); env.ConfigureNLog("NLog.configure"); app.Use(async (context, next) => { context.Items["IsVerified"] = true; await next.Invoke(); }); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Error"); } app.UseStaticFiles(); //app.UseDirectoryBrowser(); app.UseAuthentication(); app.UseSession(); app.UseMvc(routes => { routes.MapRoute( name:"area", template: "{area:exists}/{controller=Home}/{action=Index}/{id?}" ); routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }使用NLogpublic class HomeController : Controller { private readonly ILogger<HomeController> _log; public HomeController(ILogger<HomeController> log) => _log = log; static Logger logger = LogManager.GetCurrentClassLogger(); public IActionResult Index() { logger.Info("测试日志乱码"); return View(); } }
2019年02月26日
1,249 阅读
0 评论
2 点赞
2017-09-04
ASP.NET Core Razor 页面路由
在服务器端 Web 应用程序框架中,其中非常重要的设计是开发人员如何将URL与服务器上的资源进行匹配,以便正确的处理请求。最简单的方法是将 URL 映射到磁盘上的物理文件,在 Razor 页面框架中,ASP.NET团队就是这样实现的。关于 Razor 页面框架如何将 URL 与文件相匹配,有一些规则您必须了解,以及如何根据需要自定义规则改变输出的结果。如果您将 Razor 页面与 Web Form 框架进行比较,您还需要了解取代的 Url参数以及在URL中传递数据的机制。规则一,Razor 页面需要一个根目录。默认情况下,该根目录是 Pages,位于Web应用程序项目的根目录中。您可以在Startup类的ConfigureServices方法中配置其它文件夹作为根目录。以下是将根目录更改为位于应用程序 “Content” 文件夹:public void ConfigureServices(IServiceCollection services) { services .AddMvc(). AddRazorPagesOptions(options => { options.RootDirectory = "/Content"; }); }规则二,URL映射到Razor页面,URL不包含文件扩展名。规则三,“Index.cshtml”是一个默认文档,这意味着如果URL中缺少文件名,该请求将被映射到指定文件夹中的“Index.cshtml”。URL传递参数就像大多数其它框架一样,参数可以作为查询字符串在 URL 中传递,例如:www.domain.com/product?id=1;或者,您可以将其作为路由参数传递,因此上述示例将变为www.domain.com/product/1。URL的一部分必须映射到参数名称,在页面的路由模板来实现的,@page指令的一部分:@page "{id:int}"该模板告诉框架将页面名称之后URL的第一段作为“id”的路由参数。您可以通过多种方式访问路由参数的值。第一个是使用RouteData字典:@page "{id}" { var productId = RouteData.Values["id"]; }或者,您可以向该页面的OnGet()方法添加与路由参数相同名称的参数,并将其值分配给公共属性:@page "{id}" @{ @functions{ public int Id { get; set; } public void OnGet(int id) { Id = id; } } } <p>The Id is @Id</p>如果您使用的是PageModel,那么是这样实现的:using Microsoft.AspNetCore.Mvc.RazorPages; 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>最后,您可以在公有属性使用BindProperty特性,并省略该OnGet方法中的参数。Razor 文件内容保持不变,但是PageModel代码略有更改:using Microsoft.AspNetCore.Mvc.RazorPages; namespace RazorPages.Pages { public class ProductModel : PageModel { [BindProperty(SupportsGet = true)] public int Id { get; set; } public void OnGet() { } } }约束此外,在此示例中参数的约束是它必须有一个值。URL www.domain.com/product/apple与www.domain.com/product/21一样有效,都是可以与路由匹配。如果您希望id值为整数,则可以通过将数据类型添加到模板来指定约束:@page "{id:int}"现在,如果您尝试通过“apple”作为参数值,应用程序将返回404 Not Found状态码。您可以指定值不是必需的,可以将参数设置为可为空类型:@page "{id:int?}"如果您的应用程序允许使用“apple”作为参数值,则可以指定只允许使用A-Z和a-z的字符:@page "{id:alpha}"您可以与最小长度要求相结合:@page "{id:alpha:minlength(4)}"更多的约束信息,可以查看[url href='https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing#route-constraint-reference']微软文档[/url]
2017年09月04日
1,629 阅读
0 评论
3 点赞