Criando aplicação MVC utilizando DOTNET Core no GNU/Linux
Esse artigo é uma continuação da trilogia de artigos propostos sobre DotNetCore no GNU/Linux. Criaremos uma aplicação Web MVC básica, utilizando a ferramenta VSCode.
[ Hits: 6.573 ]
Por: Tiago Zaniquelli em 10/07/2017
<Project ToolsVersion="15.0" Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.0</TargetFramework> </PropertyGroup> <ItemGroup> <Folder Include="wwwroot\" /> </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore" Version="1.1.0" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.0" /> <PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="1.1.0" /> <PackageReference Include="Microsoft.AspNetCore.Razor.Tools" Version="1.0.0-preview2-final" type="build" /> <PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="1.1.0" /> <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="1.1.0" /> <PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="1.1.0" /> <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Logging" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="1.1.0" /> </ItemGroup> </Project>
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.AspNetCore.Mvc.ViewFeatures; using WebTeste.Models; namespace WebTeste { public class Startup { // 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 https://go.microsoft.com/fwlink/?LinkID=398940 public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true); builder.AddEnvironmentVariables(); Configuration = builder.Build(); } public IConfigurationRoot Configuration { get; } public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddSingleton(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using WebTeste.Models; namespace mvcTeste.Controllers{ public class HomeController : Controller{ public IActionResult Index(){ return View(); } public IActionResult Criar(){ var pessoa = new Pessoa(); return View(pessoa); } [HttpPost] public IActionResult Criar(Pessoa obj){ TempData["nome"] = obj.Nome; TempData["CPF"] = obj.CPF; return RedirectToAction("Salvar"); } public IActionResult Salvar() { var pessoa = new Pessoa(); pessoa.Nome = (string)TempData["nome"]; pessoa.CPF = (string)TempData["CPF"]; return View(pessoa); } } }
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; namespace WebTeste.Models { public class Pessoa { public Pessoa(){ } [Required] [MinLength(4)] [Display( Name = "Nome")] public string Nome {get; set;} [Display( Name = "CPF")] public string CPF {get; set;} } }
@using WebTeste.Models @model Pessoa @{ Layout = "/Views/Shared/_Layout.cshtml"; ViewBag.Tittle = "Criar Pessoa"; } <div class="jumbotron"> <h1>ASP.NET MVC Core</h1> <p class="lead">Criar uma nova pessoa. Preenche os campos e depois clique no salvar.</p> </div> @using (Html.BeginForm()) { <fieldset> <legend>Criar uma nova pessoa</legend> <div class="editor-label"> @Html.LabelFor(model => model.CPF) </div> <div class="editor-field"> @Html.TextBoxFor(model => model.CPF) </div> <div class="editor-label"> @Html.LabelFor(model => model.Nome) </div> <div class="editor-field"> @Html.TextBoxFor(model => model.Nome) </div> <input type="submit" value="Salvar" /> </fieldset> <p><br></p> }
@{ Layout = "/Views/Shared/_Layout.cshtml"; ViewBag.Tittle = "Home Page"; } <div class="jumbotron"> <h1>ASP.NET Core MVC Demo </h1> <p class="lead"> Preencher e enviar o formulário. </p> <p><a href="/Home/Criar" class="btn btn-primary btn-large">Criar »</a></p> </div>
@model WebTeste.Models.Pessoa @{ Layout = "/Views/Shared/_Layout.cshtml"; ViewBag.Tittle = "Lendo a sessão"; } <div class="jumbotron"> <h1>ASP.NET Core MVC</h1> <p class="lead">Recebendo os dados da sessão</p> <p><a href="/Home" class="btn btn-primary btn-large">Voltar para Home</a> </div> <div> <p>CPF: @(Model != null ? Model.CPF : "")</p> <p>Nome: @(Model != null ? Model.Nome : "") </p> </div> <p><br></p>
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Testando - ASP.NET MVC Core </title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> </head> <body> <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li><a href="/">Home</a></li> </ul> </div> </div> </div> <div class="container body-content"> @RenderBody() <footer> <p>© @DateTime.Now.Year - Minha primeira aplicação dotnet core</p> </footer> </div> </body> </html> </div>
Criando uma WEBApi utilizando dotnet core e vscode
Convergência entre segurança física e lógica
Configurando DOTNET Core e instalando VSCode no Linux
Seja Legal, não use softwares piratas!
O papel social do software livre
Instalando fontes true type no Linux via Kcontrol
Uma alternativa ao ConkyForecast: O BrWeather
Quebrando os mitos do software de código aberto
Hbasic, um forte candidato open source para brigar com o Microsoft Visual Basic
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
como coloco para instalar com esse erro. (13)
Alguém sabe de documentos de texto e /ou vídeo aulas de certificações ... (1)