ASP.NET MVC (1.0)、Spark View Engine (1.0)、および SubSonic (3.0.0.3) を使用しています。
「編集」ビューを正しく機能させるのに問題があります。したがって、私のコントローラーには、編集フォーム ビューを表示する次のコントローラー アクションがあります。
[AcceptVerbs(HttpVerbs.Get)]
public virtual ActionResult Edit(string name)
{
var plot = Plot.SingleOrDefault(p => p.UserID == LoggedInUser.ID && p.UrlFriendlyName == name);
// ViewData["plot"] = plot;
return View(plot);
}
そのビューのフォームは、次のコントローラー アクションにポスト バックします。
[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult Edit(Plot plot)
{
var validator = new PlotValidator();
try
{
var results = validator.Validate(plot);
if (!results.IsValid)
{
...
}
}
}
私が抱えている問題は、最初のコントローラー アクションが実際には、送信された Plot オブジェクトの値をフォームに入力しないことです。フォームに入力する唯一の方法は、Plot を ViewData に追加することです。
ViewData["plot"] = plot;
それは編集フォームに入力されますが、値を編集して上記の2番目のコントローラーアクションに送信すると、更新された値で編集フォームに送信されたプロットではなく、基本的に新しい値を含む新しいプロットが返されます.
おそらく単純なものが欠けているだけだと思いますが、それが何であるかを理解できないようです。フォームのすべてのフィールドには、「プロット」という接頭辞が付いた ID があります。
私が間違っていることを知っている/見ている人はいますか?ありがとう。