この質問をうまくまとめることができれば幸いです。部分的なビューには、作成アクションへのリンクがあります。
public ActionResult CreateProject()
{
return View("EditProject", new Project());
}
これで、渡された空のモデルを編集できる別のビューが読み込まれます。ただし、フォームが送信されると、次の場所に投稿することになっています。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditProject(Project record)
{
if (ModelState.IsValid)
{
projectRepo.saveProject(record);
return View("Close");
}
else
{
return View("EditProject");
}
}
この方法は多くのテーブルで機能し、編集アクションは同じビューでも同様に機能します。ただし、作成アクション (空のモデルを使用) の場合のみ、デバッガーでトレースしたように、フォームは作成アクションを呼び出し続けます。
私のチーム メイトの 1 人がこの問題を解決しました。
[AcceptVerbs(HttpVerbs.Get)]
public ViewResult EditProject(int id)
{
Project project = null;
if (id == 0)
{
project = new Project();
}
else
{
project = (from p in projectRepo.Projects
where p.ProjectID == id
select p).First();
}
return View(project);
}
そして、持つ代わりにパーシャルで<%= Html.ActionLink("Create New", "CreateProject")%>
そこにあるでしょう<%= Html.ActionLink("Create New", "CreateProject", new { id = 0 })%>
。
他のビューの他のテーブルでは機能するため、以前の方法が機能しない理由を知りたいと思っていました。ありがとう。