フォームで値を送信する

Form送信側を作る

  • /Views/Home/Index.cshtmlファイルを以下の用に編集する
  • @{
        ViewBag.Title = "Home Page";
    }
    
    <div class="jumbotron">
        <h1>ASP.NET</h1>
        <p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.</p>
        <p><a href="http://asp.net" class="btn btn-primary btn-lg">Learn more &raquo;</a></p>
    </div>
    
    <div class="row">
        <!--変更-->
        <form action="/Sample/Show">
            <p>Id</p>
            <input type="text" name="id" />
            <br />
            <p>Name</p>
            <input type="text" name="name" />
            <br />
            <input type="submit" value="Send" />
        </form>
    
    </div>

     

  • HTML formタグによって/Sample/Showにフォームを送信する
  • name=”id”なテキストボックスとname=”name”なテキストボックスの2つの値を送信することとなる

コントローラでFormの値を受信する

  • Formによって/Sample/Showに値が送信されるため、SampleControllerのShowメソッドを変更する
  • public class SampleController : Controller
    {
        Models.ItemModel _itemItemModel;
        // GET: Sample
        public ActionResult Index()
        {
            return View();
        }
    
        public ActionResult Show(int id,string name)
        {
            //ItemModelモデルに受け取った値を入れる
            this._itemItemModel = new Models.ItemModel();
            this._itemItemModel.Id = id;
            this._itemItemModel.Name = name;
    
            //ItemModelを引数に入れてViewに渡す
            return View(this._itemItemModel);
    
        }
    }
    

     

  • アクションメソッドに引数を設定すると、Fromの送信によって送られてくる値がnameでマップされる
  • 受け取った値をItemModelに入れ、Viewに返す
  • ここまでできたらF5か、デバッグ開始ボタンを押す
  • /Home/Indexにアクセスすると入力フォームがあるので適当な値を入れ、Sendボタンを押す
  • 送信した値を受け取って表示することができた

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.