Use Query String in ASP.NET Core MVC

This project will demonstrate how to Use Query String in ASP.NET Core MVC

  • LearnASPNETCoreMVCWithRealApps
    • Controllers
      • DemoController.cs
    • Views
      • Demo
        • Index.cshtml
        • Demo2.cshtml
        • Demo3.cshtml
        • Demo4.cshtml
    • _ViewImports.cshtml
    • Startup.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;

namespace LearnASPNETCoreMVCWithRealApps.Controllers
{
    [Route("demo")]
    public class DemoController : Controller
    {
        [Route("")]
        [Route("index")]
        [Route("~/")]
        public IActionResult Index()
        {
            return View();
        }

        [Route("demo2")]
        public IActionResult Demo2([FromQuery(Name = "id")] string id)
        {
            ViewBag.id = id;
            return View("Demo2");
        }

        [Route("demo3")]
        public IActionResult Demo3([FromQuery(Name = "id1")] int id1, [FromQuery(Name = "id2")] string id2)
        {
            ViewBag.id1 = id1;
            ViewBag.id2 = id2;
            return View("Demo3");
        }

        [Route("demo4")]
        public IActionResult Demo4()
        {
            var id1 = int.Parse(HttpContext.Request.Query["id1"].ToString());
            var id2 = HttpContext.Request.Query["id2"].ToString();
            ViewBag.id1 = id1;
            ViewBag.id2 = id2;
            return View("Demo4");
        }

    }
}
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>

    <h3>Index View</h3>
    <a asp-controller="demo" asp-action="demo2" asp-route-id="123">Demo 2</a>
    <br />
    <a asp-controller="demo" asp-action="demo3" asp-route-id1="123" asp-route-id2="p01">Demo 3</a>
    <br />
    <a asp-controller="demo" asp-action="demo4" asp-route-id1="123" asp-route-id2="p01">Demo 4</a>

</body>
</html>
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Demo 2</title>
</head>
<body>

    <h3>Demo 2 View</h3>
    Id: @ViewBag.id

</body>
</html>
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Demo 3</title>
</head>
<body>

    <h3>Demo 3 View</h3>
    Id 1: @ViewBag.id1
    <br />
    Id 2: @ViewBag.id2

</body>
</html>
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Demo 4</title>
</head>
<body>

    <h3>Demo 4 View</h3>
    Id 1: @ViewBag.id1
    <br />
    Id 2: @ViewBag.id2

</body>
</html>
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;

namespace LearnASPNETCoreMVCWithRealApps
{
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
        }

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Demo}/{action=Index}/{id?}");
            });

        }
    }
}

Screenshots