これは単純なコードを使用した単純な質問です。理解できるように冗長にしたかっただけです。
ASP.NET MVC アプリケーション用に生成された標準のビューには、以下のように終了する削除ビューがあります -
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
<p>
<input type="submit" value="Delete" /> |
@Html.ActionLink("Back to List", "Index")
</p>
}
コントローラのメソッドは標準です -
public ActionResult Delete(int addressID)
{
Address address = db.Address.Find(addressID);
if (address == null)
{
return HttpNotFound();
}
return View(address);
}
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int addressID)
{
Address address = db.Address.Find(addressID);
db.Address.Remove(address);
db.SaveChanges();
return RedirectToAction("Index");
}
これが生成する HTML は次のようになります -
<form action="/Address/Delete?AddressID=2" method="post">
<input name="__RequestVerificationToken" type="hidden" value="...snip..." /> <p>
<input type="submit" value="Delete" /> |
<a href="/Address">Back to List</a>
</p>
</form>
ご覧のとおり、AddressID はフォーム アクションに含まれていますが、そこに配置するために何も「実行」していません。モデルを梱包して送りました。
AddressID はどのようにフォーム アクションに取り込まれますか?