私はMVCを初めて使用しますが、理解できない問題があります。以下のコードは私が達成したいものです:
モデル:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace testapplication.Models {
public class testModel {
public class SystemUser {
public string Name { get; set; }
public string Email { get; set; }
}
public static List<SystemUser> list1;
public static void CreateList1() {
list1 = new List<SystemUser>();
}
public static void FillList1() {
SystemUser firstUser = new SystemUser();
firstUser.Name = "name";
firstUser.Email = "email@address.com";
list1.Add(firstUser);
}
public static List<SystemUser> list2 = new List<SystemUser>();
public static void FillList2() {
SystemUser firstUser = new SystemUser();
firstUser.Name = "name";
firstUser.Email = "email@address.com";
list2.Add(firstUser);
}
public static string list3 = "test";
}
}
コントローラ:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using testapplication.Models;
namespace testapplication.Controllers {
public class HomeController : Controller {
public ActionResult Index() {
testModel.CreateList1();
testModel.FillList1();
testModel.FillList2();
var var1 = testModel.list1;
var var2 = testModel.list2;
var var3 = testModel.list3;
return View();
}
[HttpPost]
public ActionResult Index(string test) {
var var1 = testModel.list1;
var var2 = testModel.list2;
var var3 = testModel.list3;
return View();
}
}
}
意見:
<h2>Index</h2>
@using (Html.BeginForm("Index", "Home", FormMethod.Post)) {
<input type="submit" value="Submit" />
}
POSTメソッドlist1、list2、list3の前は問題ありませんが、Post list1がnullの直後は、list2は空(インスタンスが作成されます)、list3は問題ありません。何故ですか?POSTの前後で同じ値にしたい。