MVC 3.0 と Razor を使用して、非常に基本的な MVC プロジェクトを試しています。このリンクでチュロリアルを参照してください。
「Contact」というモデル クラスを使用して、Contacts を編集するための厳密に型指定されたビューを作成しました。
namespace Practice.Models
{
public class Contact
{
public string firstName;
public string lastName;
public string mobileNumber;
}
}
「インデックス」メソッドは、リスト タイプ ビューを使用してすべての連絡先を表示します。連絡先に対して [編集] リンクをクリックすると、編集ビューを使用してテキスト ボックスに連絡先の詳細が表示されます。
ただし、編集フォームを送信すると、コントローラー アクション メソッドでモデル値が取得されません。プロパティごとに null が表示されます。このような単純な例で、ここで何が欠けているのでしょうか?
DirectoryController
[HttpPost]
public ViewResult Edit(Contact model)
{
contactRepository.Update(model);
return View("Details", model);
}
意見
@model Practice.Models.Contact
@{
ViewBag.Title = "Edit";
}
<h2>Edit</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"> </script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm("Edit","Directory"))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Contact</legend>
@Html.TextBoxFor(m => m.firstName)
@Html.TextBoxFor(m => m.lastName)
@Html.TextBoxFor(m => m.mobileNumber)
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>