トッカンソフトウェア

ASP.NET MVC 画面遷移(POST)

今回はPOSTで画面遷移をやってみます。前回の続きからやるので、前回の内容で環境構築しておいて下さい。

同じコントローラ内で別Viewに画面遷移

同じコントローラ内で別Viewを表示するには、Viewを戻すときに別のView名を指定します。

Hello.cs
				
namespace HelloWorld.Models
{
    public class Hello
    {
        public string Str1 { get; set; }
        public string Str2 { get; set; }
    }
}

			
HelloController.cs
				
using HelloWorld.Models;
using System;
using System.Web.Mvc;

namespace HelloWorld.Controllers
{
    public class HelloController : Controller
    {
     
        public ActionResult HelloView()
        {
            return View();
        }

        [HttpPost]
        public ActionResult HelloView(Hello hl)
        {
            ModelState.Clear();
            String work = hl.Str1;
            hl.Str1 = hl.Str2 ;
            hl.Str2 = work;

            return View("HelloView2", hl);
        }
    }
}

			
HelloView.cshtml
				
@model HelloWorld.Models.Hello

@{
    ViewBag.Title = "HelloView";
}

@using (Html.BeginForm())
{
    <br />
    @Html.TextBoxFor(a => a.Str1)
    <h2>↓↑</h2>
    @Html.TextBoxFor(a => a.Str2)
    <input type="submit" />
}

			
HelloView2.cshtml
				
@model HelloWorld.Models.Hello

@{
    ViewBag.Title = "HelloView2";
}

<h2>画面遷移しました</h2>
<br />
@Html.TextBoxFor(a => a.Str1)
@Html.TextBoxFor(a => a.Str2)


			

実行イメージ


↓ 送信ボタンを押下

				
return View("HelloView2");

			



別コントローラに画面遷移

別コントローラに画面遷移するときは、RedirectToActionでメソッド名、クラス名を指定します。

HelloController.cs
				
using HelloWorld.Models;
using System;
using System.Web.Mvc;

namespace HelloWorld.Controllers
{
    public class HelloController : Controller
    {
     
        public ActionResult HelloView()
        {
            return View();
        }

        [HttpPost]
        public ActionResult HelloView(Hello hl)
        {
            ModelState.Clear();
            String work = hl.Str1;
            hl.Str1 = hl.Str2 ;
            hl.Str2 = work;

            return RedirectToAction("index", "Hello2");
        }
    }
}

			
Hello2Controller.cs
				
using System;
using System.Web.Mvc;

namespace HelloWorld.Controllers
{
    public class Hello2Controller : Controller
    {
        // GET: Hello2
        public String Index()
        {
            return "Hello World!!";
        }
    }
}

			

↓ 送信ボタンを押下






ページのトップへ戻る