2012-01-09 1 views
0

私はRazorを使用してMVC 3アプリケーションを開発しています。私はどのくらいのコードが私の見解で受け入れられるだろうと思っていた。モデルに含まれていないオブジェクトを作成し、インスタンス化して使用する必要がある状況があり、ViewModelを使用するとモデルオブジェクトが膨大になります。今私の見解の一部を見ると、サーバーのサイドコードがいっぱいです。そのような問題に取り組む際のベストプラクティスは何でしょうか?MVCビューのサーバーサイドコードの数

+0

ビューにサーバーサイドコードを書いているとはどういう意味ですか? – c0deNinja

答えて

1

私の見解でどれくらいのコードが受け入れられるのだろうかと思っていました。

コードでは、C#コードを意味する場合、正確には0にする必要があります。一方、あなたのビューにHTMLマークアップを書いてHTMLヘルパーを呼び出すことは、まったく問題ありません。

私は、作成インスタンス化し、モデルに含まれ、ビューモデルを使用していませんでした オブジェクトを使用するために必要な場所の状況がありましたが

モデルオブジェクトが肥大化するだろうそして、それはあなたのようです(このビューには追加情報が必要なため)このビューには適合しませんでした。したがって、ビューモデルをそれに適応させ、必要なものをすべて含めて、この状況を変えてください。

私は私の意見を見て、私はそれらがサーバー側 コードでいっぱいであることを知ります。そのような問題に取り組む際のベストプラクティスは何でしょうか?

はい、これは恐ろしいことです。ビューモデルを調整し、このコードをビューモデルやコントローラにリファクタリングするだけでなく、カスタムHTMLヘルパーを作成することもできます。

+0

ビューでC#コードを使用することは避けられない状況があります。たとえば、_layout.cshtmlファイルにメニューを作成します。ユーザーがManagerグループのメンバーである場合は、メニューに多くのオプション(順序付けられていないリスト)が表示されます。 if-elseを使用しないと、他に何ができますか? – user1137993

+0

@ user1137993、if/elseがビューの大惨事ではありません。しかし、このメニューをレンダリングするカスタムHTMLヘルパーを書くこともできます。これにより、ビュー内に書かなければならないのは '@ Html.Menu()'です。ビュー内にC#はありません。 –

関連する問題