私はMVCをきちんと始めたばかりで、比較的単純だと思った概念に固執しています。
だから、私はある瞬間にコントローラーに投稿するフォームを持っています(これは問題ありません):
コントローラ
public ActionResult TestAction(int productId)
{
// What to do here... ?
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult TestAction(FormCollection values)
{
// Do work here and return the objects
return View(Products);
}
意見
@foreach (var product in Model)
{
<tr>
<td>@product.Provider.Name</td>
<td>£@product.MonthlyPremium</td>
<td>@Html.ActionLink("More Details", "TestAction", new { productId = product.ProductId })</td>
<td>Compare</td>
</tr>
}
// I want the singular product details to be displayed here, under the product list... but how?!
ここで、[詳細](ActionLink)をクリックすると、単一のProductオブジェクトの一部である製品の詳細が表示されます。GETからTestActionコントローラーが呼び出されましたが、製品のビューを保持し、単一の製品の詳細を表示するにはどうすればよいですか?この単一の製品をViewBagに割り当てて、そのようにしますか?次に、製品のリストについて、元のリストをキャッシュし、そのキャッシュを使用しますか?
これは私のサイトの非JSバージョン用であるため、ポストバックを介してこれを実行したいと思います。
確かに、これを行うためのより良い方法が必要です、または私はあまりにも長い間ViewStateに悩まされてきましたか?