ASP.NET 5 RC 2:UrlRouting 设置(不包含MVC6的UrlRouting设置)
0、Program.cs
- using System.IO;
- using Microsoft.AspNetCore.Hosting;
- namespace AspNetCoreUrlRoutingDemoRC2
- {
- public class Program
- {
- public static void Main(string[] args)
- {
- var host = new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIISIntegration()
- .UseStartup<Startup>()
- .Build();
- host.Run();
- }
- }
- }
1、project.json
- {
- "userSecretsId": "aspnet-WebApplicationCore1-782de49b-8e7f-46be-82aa-0f48e1d370bc",
- "dependencies": {
- "Microsoft.NETCore.App": {
- "version": "1.0.0-rc2-3002702",
- "type": "platform"
- },
- "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0-rc2-final",
- "Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final",
- "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
- "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
- "Microsoft.AspNetCore.Routing": "1.0.0-rc2-final",
- "Microsoft.AspNetCore.Routing.Abstractions": "1.0.0-rc2-final",
- "Microsoft.AspNetCore.Http.Extensions": "1.0.0-rc2-final",
- "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",
- "Microsoft.Extensions.Configuration": "1.0.0-rc2-final",
- "Microsoft.Extensions.Configuration.Binder": "1.0.0-rc2-final",
- "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
- "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc2-final",
- "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc2-final",
- "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
- "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc2-final",
- "Microsoft.Extensions.Logging": "1.0.0-rc2-final",
- "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
- "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
- "Microsoft.AspNetCore.Identity": "1.0.0-rc2-final",
- "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc2-final"
- },
- "tools": {
- "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
- "version": "1.0.0-preview1-final",
- "imports": "portable-net45+win8+dnxcore50"
- }
- },
- "frameworks": {
- "netcoreapp1.0": {
- "imports": [
- "dotnet5.6",
- "dnxcore50",
- "portable-net45+win8"
- ]
- }
- },
- "buildOptions": {
- "emitEntryPoint": true,
- "preserveCompilationContext": true
- },
- "runtimeOptions": {
- "gcServer": true
- },
- "publishOptions": {
- "include": [
- "wwwroot",
- "web.config"
- ]
- },
- "scripts": {
- "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
- }
- }
2、appsettings.json
- {
- "ConnectionStrings": {
- "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-WebApplicationCore1-782de49b-8e7f-46be-82aa-0f48e1d370bc;Trusted_Connection=True;MultipleActiveResultSets=true"
- },
- "Logging": {
- "IncludeScopes": false,
- "LogLevel": {
- "Default": "Debug",
- "System": "Information",
- "Microsoft": "Information"
- }
- }
- }
3、Startup.cs
- using Microsoft.AspNetCore.Builder;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Configuration;
- using Microsoft.AspNetCore.Routing;
- using Microsoft.AspNetCore.Hosting;
- using Microsoft.Extensions.Logging;
- using AspNetCoreUrlRoutingDemoRC2.PageRoute;
- namespace AspNetCoreUrlRoutingDemoRC2
- {
- public class Startup
- {
- public Startup(IHostingEnvironment env)
- {
- IConfigurationBuilder builder = new ConfigurationBuilder()
- .SetBasePath(env.ContentRootPath)
- .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
- .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
- if (env.IsDevelopment())
- {
- // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
- builder.AddUserSecrets();//project.json -> userSecretsId
- }
- builder.AddEnvironmentVariables();
- this.Configuration = builder.Build();
- }
- public IConfigurationRoot Configuration { get; }
- // This method gets called by the runtime. Use this method to add services to the container.
- // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddRouting();
- }
- public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
- {
- loggerFactory.AddConsole(Configuration.GetSection("Logging"));
- loggerFactory.AddDebug();
- if (env.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- app.UseBrowserLink();
- }
- else
- {
- app.UseExceptionHandler("/error");
- }
- app.UseStaticFiles();
- //app.UseIdentity();
- RouteBuilder routeBuilder = new RouteBuilder(app);
- //index
- routeBuilder.DefaultHandler = new IndexPageRouteHandler(this.Configuration, "index");
- routeBuilder.MapRoute("index_culture_", "{culture}/", new RouteValueDictionary { { "culture", "en" } }, new RouteValueDictionary { { "culture", @"\w{2}" } });
- app.UseRouter(routeBuilder.Build());
- //category
- routeBuilder.DefaultHandler = new CategoryPageRouteHandler(this.Configuration, "category");
- routeBuilder.MapRoute("category_", "{culture}/fashion/{leimu}/{pageindex}/", new RouteValueDictionary { { "pageindex", "" }, { "culture", "en" } }, new RouteValueDictionary { { "leimu", "([\\w|-]+)(\\d+)" }, { "pageindex", "\\d+" }, { "culture", @"\w{2}" } });
- app.UseRouter(routeBuilder.Build());
- }
- }
- }
4、IndexPageRouteHandler.cs
- using System;
- using System.Threading.Tasks;
- using Microsoft.Extensions.Configuration;
- using Microsoft.AspNetCore.Routing;
- using Microsoft.AspNetCore.Http;
- using System.Diagnostics;
- namespace AspNetCoreUrlRoutingDemoRC2.PageRoute
- {
- public class IndexPageRouteHandler : IRouter
- {
- private string _name = null;
- private readonly IConfigurationRoot _configurationRoot;
- public IndexPageRouteHandler(IConfigurationRoot configurationRoot, string name)
- {
- this._configurationRoot = configurationRoot;
- this._name = name;
- }
- public async Task RouteAsync(RouteContext context)
- {
- if (this._configurationRoot != null)
- {
- string connectionString = this._configurationRoot.GetConnectionString("DefaultConnection");
- Debug.WriteLine(connectionString);
- }
- var routeValues = string.Join("", context.RouteData.Values);
- var message = String.Format("{0} Values={1} ", this._name, routeValues);
- await context.HttpContext.Response.WriteAsync(message);
- }
- public VirtualPathData GetVirtualPath(VirtualPathContext context)
- {
- throw new NotImplementedException();
- }
- }
- }
5、CategoryPageRouteHandler.cs
- using Microsoft.AspNetCore.Routing;
- using System;
- using System.Threading.Tasks;
- using Microsoft.AspNetCore.Http;
- using Microsoft.Extensions.Configuration;
- using System.Diagnostics;
- namespace AspNetCoreUrlRoutingDemoRC2.PageRoute
- {
- public class CategoryPageRouteHandler : IRouter
- {
- private string _name = null;
- private readonly IConfigurationRoot _configurationRoot;
- public CategoryPageRouteHandler(IConfigurationRoot configurationRoot, string name)
- {
- this._configurationRoot = configurationRoot;
- this._name = name;
- }
- public async Task RouteAsync(RouteContext context)
- {
- if (this._configurationRoot != null)
- {
- string connectionString = this._configurationRoot.GetConnectionString("DefaultConnection");
- Debug.WriteLine(connectionString);
- }
- var routeValues = string.Join("", context.RouteData.Values);
- var message = String.Format("{0} Values={1} ", this._name, routeValues);
- await context.HttpContext.Response.WriteAsync(message);
- }
- public VirtualPathData GetVirtualPath(VirtualPathContext context)
- {
- throw new NotImplementedException();
- }
- }
- }
6、F5启动调试,
浏览器输入网址:http://localhost:16924/
浏览器输入网址:http://localhost:16924/en/fashion/wwww-1111/2
6、VS2015项目结构
ASP.NET 5 RC 2:UrlRouting 设置(不包含MVC6的UrlRouting设置)的更多相关文章
- ASP.NET 5 RC 1:UrlRouting 设置(不包含MVC6的UrlRouting设置)
转自:http://habrahabr.ru/company/microsoft/blog/268037/?mobile=no 1.project.json { "version" ...
- ASP.NET Core 1:UrlRouting 设置(不包含MVC6的UrlRouting设置)
0.Program.cs using System.IO; using Microsoft.AspNetCore.Hosting; namespace WebApplication1 { public ...
- Asp.Net中应用Aspose.Cells输出报表到Excel 及样式设置
解决思路: 1.找个可用的Aspose.Cells(有钱还是买个正版吧,谁开发个东西也不容易): 2.在.Net方案中引用此Cells: 3.写个函数ToExcel(传递一个DataTable),可以 ...
- IIS 添加mime 支持 apk,exe,.woff,IIS MIME设置 ,Android apk下载的MIME 设置 苹果ISO .ipa下载mime 设置
原文:IIS 添加mime 支持 apk,exe,.woff,IIS MIME设置 ,Android apk下载的MIME 设置 苹果ISO .ipa下载mime 设置 站点--右键属性--http头 ...
- Web.config中的设置 forms 中的slidingExpiration的设置
在ASP.NET 网站中,使用 Forms Authentication时,一般的设置是如下的: <authentication mode="Forms"> <f ...
- 无线路由器的设置_不能通过wifi进行设置
昨天朋友的小区宽带续费完不能上网了,过去看了一下,无线路由器没有问题,但是宽带信号没过来,网线直接插在电脑上用拨号,发现根本没办法连接,提示网线已经被拔出,重新还原一下系统,也是不行.因为之前他的电脑 ...
- 实现ScrollView中包含ListView,动态设置ListView的高度
ScrollView 中包含 ListView 的问题 : ScrollView和ListView会冲突,会导致ListView显示不全 <?xml version="1.0" ...
- iOS “请在微信客户端打开链接” UIWebview加载H5页面携带session、cookie、User-Agent信息 设置cookie、清除cookie、设置User-Agent
公司新开的一个项目..内容基本上是加载H5页面显示..当时觉得挺简单的..后来发现自己掉坑里了..一些心理历程就不说了..说这个项目主要用到的知识点吧..也是自己踩得坑. 首先说说..这个项目上的内容 ...
- 设置checkbox选中,设置radio选中,根据值设置checkbox选中,checkbox勾选
设置checkbox选中,设置radio选中,根据值设置checkbox选中,checkbox勾选 >>>>>>>>>>>>&g ...
随机推荐
- Cognos11中通过URL访问report的设置
1:以往的cognos版本中在报表的属性中可以找到 url的属性,稍加修改就可以通过URL进行访问了 2:Cognos11中找了半天也没有报表URL这个属性,但是IBM官方也给出了解决方案 Answe ...
- 【算法】插入排序(Insertion Sort)
(PS:内容参考MIT算法导论) 插入排序(Insertion Sort): 适用于数目较少的元素排序 伪代码(Pseudocode): 例子(Example): 符号(notation): 时间复杂 ...
- 扩展一个boot的插件—tooltip&做一个基于boot的表达验证
在线演示 本地下载 (代码太多请查看原文) 加班,加班加班,我爱加班··· 我已经疯了,哦也. 这次发一个刚接触boot的时候用boot做的表单验证,我们扩展一下tooltip的插件,让他可以换颜色. ...
- .NET Framework System.Array.Sort 数组类,加深对 IComparer、IComparable 以及泛型委托、匿名方法、Lambda 表达式的理解
本文内容 自定义类 Array.Sort 参考资料 System.Array.Sort 有很多对集合的操作,比如排序,查找,克隆等等,你可以利用这个类加深对 IComparer.IComparable ...
- Swift语言精要 - 扩展(Extension)
swift的Extension用户在不访问代码的情况下扩展基本结构类型或自定义类 extension Int { var doubled : Int { } func multiplyWith(ano ...
- 微信小程序 - 深度定义骨架屏(提示)
此举每个页面必须创建对应的css样式,比较麻烦(但非常准确),推荐使用组件化的skeleton组件 原理很简单:知晓一下this.setData原理,就OK了,可能大家会因此了解到全屏加载loadin ...
- 微信小程序 - 分包加载(独立分包)
独立分包是小程序中一种特殊类型的分包,可以独立于主包和其他分包运行.从独立分包中页面进入小程序时,不需要下载主包.当用户进入普通分包或主包内页面时,主包才会被下载 将某些具有一定功能独立性的页面配置到 ...
- 使用Phantomjs和ChromeDriver添加Cookies的方法
一.查看代码 : namespace ToutiaoSpider { class Program { static void Main(string[] args) { var db = Db.Get ...
- C#通过代码调用PowerShell
var userId = "MyAccount@XXXXX.partner.onmschina.cn"; var tenantId = "XXXXX-ca13-4bcb- ...
- WorkFlow业务介绍
WorkFlow简介 WorkFlow在我们的系统中,解释为系统提示更为恰当一下,当一件事情发生的时候可能需要通知某些人,这样其他人就可以做后续的处理了. 两个SST dts_workflow - W ...