Skip to content

Commit

Permalink
mvc blog
Browse files Browse the repository at this point in the history
  • Loading branch information
XuanThuLab committed Sep 19, 2020
1 parent a4a4257 commit 719eea4
Show file tree
Hide file tree
Showing 59 changed files with 40,295 additions and 0 deletions.
36 changes: 36 additions & 0 deletions ASP_NET_CORE/mvcblog/.vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (web)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/bin/Debug/netcoreapp3.1/mvcblog.dll",
"args": [],
"cwd": "${workspaceFolder}",
"stopAtEntry": false,
// Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser
"serverReadyAction": {
"action": "openExternally",
"pattern": "\\bNow listening on:\\s+(https?://\\S+)"
},
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"sourceFileMap": {
"/Views": "${workspaceFolder}/Views"
}
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickProcess}"
}
]
}
42 changes: 42 additions & 0 deletions ASP_NET_CORE/mvcblog/.vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/mvcblog.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "publish",
"command": "dotnet",
"type": "process",
"args": [
"publish",
"${workspaceFolder}/mvcblog.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "watch",
"command": "dotnet",
"type": "process",
"args": [
"watch",
"run",
"${workspaceFolder}/mvcblog.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
}
]
}
6 changes: 6 additions & 0 deletions ASP_NET_CORE/mvcblog/Areas/testrazor/Pages/About.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@page
@model mvcblog.testrazor.AboutModel
@{
Layout = "_Layout"; // Thiết lập Layout của trang (View/Shared/_Layout.cshtml)
}
<p class="alert alert-danger">Đây là trang Razor trong MVC</p>
16 changes: 16 additions & 0 deletions ASP_NET_CORE/mvcblog/Areas/testrazor/Pages/About.cshtml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace mvcblog.testrazor
{
public class AboutModel : PageModel
{
public void OnGet()
{
}
}
}
38 changes: 38 additions & 0 deletions ASP_NET_CORE/mvcblog/Controllers/HomeController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
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 mvcblog.Models;

namespace mvcblog.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;

public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}

public IActionResult Index()
{

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 });
}
}
}
24 changes: 24 additions & 0 deletions ASP_NET_CORE/mvcblog/Controllers/LearnAspController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;

namespace mvcblog.Controllers
{
public class LearnAspController : Controller
{

[Route("abc-[controller]-xyz[action]")] // Url phù hợp = /abc-learnasp-xyztest
public IActionResult Test()
{
return Content("Kiểm tra route");
}
// [HttpGet("hoc-lap-trinh-asp/{id:int?}/", Name = "routeabc")]
public IActionResult Index()
{
return View();
}

}
}
11 changes: 11 additions & 0 deletions ASP_NET_CORE/mvcblog/Models/ErrorViewModel.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using System;

namespace mvcblog.Models
{
public class ErrorViewModel
{
public string RequestId { get; set; }

public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
}
}
26 changes: 26 additions & 0 deletions ASP_NET_CORE/mvcblog/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

namespace mvcblog
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
}
27 changes: 27 additions & 0 deletions ASP_NET_CORE/mvcblog/Properties/launchSettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:14745",
"sslPort": 44329
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"mvcblog": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
12 changes: 12 additions & 0 deletions ASP_NET_CORE/mvcblog/ScaffoldingReadMe.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Scaffolding has generated all the files and added the required dependencies.

However the Application's Startup code may required additional changes for things to work end to end.
Add the following code to the Configure method in your Application's Startup class if not already done:

app.UseMvc(routes =>
{
routes.MapRoute(
name : "areas",
template : "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
94 changes: 94 additions & 0 deletions ASP_NET_CORE/mvcblog/Startup.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Extensions;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Newtonsoft.Json;

namespace mvcblog
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}

public IConfiguration Configuration { get; }

public void ConfigureServices(IServiceCollection services)
{
services.Configure<RouteOptions> (options => {
options.AppendTrailingSlash = false; // Thêm dấu / vào cuối URL
options.LowercaseUrls = true; // url chữ thường
options.LowercaseQueryStrings = false; // không bắt query trong url phải in thường
});


services.AddControllersWithViews();
services.AddRazorPages();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute (
name: "learnasproute", // đặt tên route
defaults : new { controller = "LearnAsp", action = "Index" },
pattern: "learn-asp-net/{id:int?}");
// Đến Razor Page
endpoints.MapRazorPages();
});

app.Map("/testapi", app => {
app.Run(async context => {
context.Response.StatusCode = 500;
context.Response.ContentType = "application/json";
var ob = new {
url = context.Request.GetDisplayUrl(),
content = "Trả về từ testapi"
};
string jsonString = JsonConvert.SerializeObject(ob);
await context.Response.WriteAsync(jsonString, Encoding.UTF8);
});
});

app.Run (async (HttpContext context) => {
context.Response.StatusCode = StatusCodes.Status404NotFound;
await context.Response.WriteAsync ("Page not found!");
});

}
}
}
10 changes: 10 additions & 0 deletions ASP_NET_CORE/mvcblog/Views/Home/Index.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
@{
ViewData["Title"] = "Home Page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>

<a asp-controller="LearnAsp" asp-action="Index" asp-route-id="123">Học Asp</a>
<a asp-route="routeabc" asp-route-id="1">AAA</a>
6 changes: 6 additions & 0 deletions ASP_NET_CORE/mvcblog/Views/Home/Privacy.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@{
ViewData["Title"] = "Privacy Policy";
}
<h1>@ViewData["Title"]</h1>

<p>Use this page to detail your site's privacy policy.</p>
7 changes: 7 additions & 0 deletions ASP_NET_CORE/mvcblog/Views/LearnAsp/Index.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@{
ViewData["Title"] = "Index";
Layout = "_Layout";
}

<h1>Học Asp.net Core MVC</h1>

25 changes: 25 additions & 0 deletions ASP_NET_CORE/mvcblog/Views/Shared/Error.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
@model ErrorViewModel
@{
ViewData["Title"] = "Error";
}

<h1 class="text-danger">Error.</h1>
<h2 class="text-danger">An error occurred while processing your request.</h2>

@if (Model.ShowRequestId)
{
<p>
<strong>Request ID:</strong> <code>@Model.RequestId</code>
</p>
}

<h3>Development Mode</h3>
<p>
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
</p>
<p>
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
It can result in displaying sensitive information from exceptions to end users.
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
and restarting the app.
</p>
Loading

0 comments on commit 719eea4

Please sign in to comment.