コントローラーのPostメソッドにモデルを渡したい。メソッドが呼び出されると、コンテンツには null 値が表示され、Id には 0 が表示されます。理想的には、表示されたモデルの値が含まれている必要があります。
意見:
@model MvcApplication4.Models.WorldModel
@{
ViewBag.Title = "Information";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm("Information", "World", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<br />
@Html.DisplayFor(model => model.Id)
<br />
@Html.DisplayFor(model => model.Content)
<br />
<input type="submit" value="Next" />
}
コントローラー: 送信ボタンをクリックしたときに呼び出されるメソッド。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Information(WorldModel worldModel)
{
CandidateSession cs = (CandidateSession)Session["Can"];
var can = cs.Candidates.Where(x => x.IsNameDispalyed == false);
if (can.Count() > 0)
{
var can1 = can.First();
can1.IsNameDispalyed = true;
Session["Can"] = cs;
return View(new WorldModel() { Id = can1.Id, Content = can1.Name });
}
return View(new WorldModel());
}
モデル:
public class WorldModel
{
public int Id { get; set; }
public string Content { get; set; }
}