aspx WebForms からの切り替えを試みることを決定した MVC はまったく初めてです。MVC ビュー クリエーター ウィザードを使用してビューを作成し、厳密に型指定されたクラスと編集用の Scaffold テンプレートを選択しました。
私は次のものを手に入れました
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Company</legend>
@Html.HiddenFor(model => model.Id)
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.PhoneNumber)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.PhoneNumber)
@Html.ValidationMessageFor(model => model.PhoneNumber)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
コントローラーには、モデルの詳細を取得するために次のものがあります
[System.Web.Http.HttpGet]
public ActionResult Edit(int id)
{
var uow = new BlogUow();
var company = uow.Companies.GetById(id);
return View(company);
}
これは問題なく機能しますが、問題は、新しく入力した詳細を実際に保存する方法に困惑していることです。Web フォームがポストバックを処理する方法に頼りすぎていました。