私は思っていることがありますし、自分のコードの多くで実装してきたことがあります。私はこれを行う最良の方法ではないと思います。ロジックに基づいてMVCビューの一部を表示および非表示する最も良い方法は何ですか?
フォームを送信した後、同じページに戻り、成功メッセージを表示し、送信されたフォーム入力を非表示にしたい場合があります。また、クエリ文字列などのオプションのパラメータを持つページに移動し、そのパラメータに基づいて、ビュー上の特定のものを表示および非表示にすることもできます。
私は自分のコントローラにすべてのロジックを保存し、ロジックを私の視点に入れないのが好きなので、これを行う最善の方法はわかりません。
これは、異なるパネルの要素を分離し、csコントロールの隠しプロパティを設定するだけで、Webフォームでこれを実行できます。
MVCでこれをやっているのは、例えば、ViewBagの成功メッセージと、viewbagがnullであるかどうかを調べるif文です。 nullでない場合、成功メッセージを表示します。そうでなければ、いくつかのフォーム入力を表示します。他の時は、ビューバックを使用しません。たとえば、ショッピングカートのチェックアウトページです。あなたの見解では、カートのモデルが空であるかどうかを確認することができます。表示されている場合は、「申し訳ありません。カートが空です」というメッセージが表示されます。それ以外の場合は、カートテーブルを表示します。私は私の見解では論理でこれを扱うのは好きではない。最高の解決策は何ですか?別の解決策がありますか?
ここにいくつかのコード例があります。
コントロール:
[HttpPost]
public ActionResult Edit(Elephants elephants)
{
// do something with elephants
ViewBag.weldone = "Weldone, you have made a wonderful impact by submitting this crucial knformation about elephants to the world";
return View();
}
ビュー:
@if(ViewBag.weldone != null)
{
<p>@ViewBag.weldone</p>
}
else
{
//something you want to hide from the page on succesfull elephant save
}