1

HTML の (複雑な) 部分を作成するために、大量の再帰を伴う複雑なロジックを実行しています。

Razor の関数を使用してビューでこれを行うことから始めました。HTML がそこに属していると感じたからです。

しかし、より複雑になり始めたので、バックエンド コードで行うほうがよいと考えました。それは現在です。

まだ少し臭いがしますが、もう一度ビューに移動する必要があるかどうか疑問に思っています (明らかにビューが乱雑になります)。

技術的にどちらがより正しいですか? バックエンド コードを使用して HTML を生成するのが適切なのはいつですか?

ご意見ありがとうございます。

4

2 に答える 2

1

MVC パターンを維持するために、より詳細な部分ビューと部分モデルを作成します。

ビューのモデルを正しく選択すると、部分的であっても、ビューで HTML を生成することは問題になりません。最終的に 20 個のビューと 5 個のモデルが追加される可能性がありますが、コントローラーは単にビューを選択してモデルにデータを入力するだけなので、これは良いことです。

于 2012-09-07T06:17:29.280 に答える
0

コントローラーでやらないでください。HtmlHelperクラスを拡張して、そこで処理を行うことができます。たとえば、ページング ヘルパーを使用している場合です。

静的クラス HtmlHelpers を作成します

namespace YourMvcApplication.WebUI.HtmlHelpers
{
    public static class PagingHelpers
    {
        public static MvcHtmlString PageLinks(this HtmlHelper html,int totalPages)
        {
            StringBuilder result = new StringBuilder();
            // do the complex logic to create dynamic html and append to 
            // String Builder
            return MvcHtmlString.Create(result.ToString());
        }
    }
}

web.config のすべてのビューで、このクラスへの参照を追加します。

<namespaces>
    <add namespace="YourMvcApplication.WebUI.HtmlHelpers"/>
</namespaces>

必要に応じて、この Html ヘルパー メソッドを使用および再利用してください。

<div>
    @Html.PageLinks(Model.TotalPages)
</div>
于 2012-09-07T06:24:14.067 に答える