私はちょうど本から例を得た
コントローラ:
[HttpPost]
public ViewResult RsvpForm(GuestResponse guestResponse)
{
// TODO: Email guestResponse to the part organizer
return View("Thanks", guestResponse);
}
意見:
@model MvcApplication1.Models.GuestResponse
@{
ViewBag.Title = "Thanks";
}
<div>
<h1>Thank you, @Model.Name!</h1>
@if (Model.WillAttend == true)
{
@:It's great that you're coming. The drinks are already in the fridge!
}
else
{
@:Sorry to hear that you can't make it, but thanks for letting us know.
}
</div>
このアプローチは、ビューとモデル/コントローラーロジックを分離するという概念に反していると思います。
私のアプローチは次のとおりです。
コントローラ:
[HttpPost]
public ViewResult RsvpForm(GuestResponse guestResponse)
{
ViewResult v = View("Thanks");
v.ViewBag.Name = guestResponse.Name;
if (guestResponse.WillAttend)
{
v.ViewBag.Message = "It's great that you're coming. The drinks are already in the fridge!";
}
else
{
v.ViewBag.Message = "Sorry to hear that you can't make it, but thanks for letting us know.";
}
return v;
}
意見:
@{
ViewBag.Title = "Thanks";
}
<div>
<h1>Thank you, @ViewBag.Name!</h1>
@ViewBag.Message;
</div>
この「質問」の目的は、表示にはビューを使用し、何を表示するかを制御するにはコントローラーを使用する必要があること、および書籍の例は「悪いアプローチ」であることを明確にすることです (著者が単に能力を示したかったという事実を考慮しています)。 MVCの)
厳密に型指定されたビュー (ロジック コードを含む) を使用することは本当に良いアイデアですか、それとも ASP スパゲッティ コードのようなものに戻るのでしょうか?
高品質のエンタープライズ デザインを考慮して、いくつかの良いフィードバックをお願いします。
更新: 些細な例であることはわかっていますが、検証などはありませんが、(この例のために) モデルにロジックを配置し、ビューで次のような結果にアクセスすることをお勧めします。
@Model.Message