2017-09-16 16 views
-1

私は、サーバーにExcelファイルをアップロードし、内容を読み、いくつかの妥当性検査を行い、それらの内容を未加工html形式でブラウザに返すという要件があります。 私の質問は、My Controllerがファイルの内容を読み込んでhtmlを動的に構築し、htmlコンテンツをクライアントに送り返すことができればどうなるでしょうか?ここでモデルが使用されていない、それは悪いデザインパターンですか?ASP.Net MVCでモデルが必須かオプションか?

+2

あなたが記述した状況では、モデルはそのHTMLのレンダリングに使用するはずのデータです。理論的には、そのモデルをビューに渡す必要があります。 RazorページをレンダリングするためのHtmlヘルパー。私はこれが間違ったやり方で簡単にやり遂げることはできないと思っています。例えば、文字列を連結してHtmlレスポンスを強制するなどです。だから私はMVCパターンを使用しないというメリットも見ていません。私は利益があると推測できます。あなたはMVCを知らず、MVCプロジェクトでMVCを使用することを避けることができます。もしあなたがこの結論を変えるかもしれないより多くの文脈を与えるならば。 – derloopkat

+1

Model-View-Controlerパターンは文字通りそれを定義するものの1/3を除いて一種のものになります。あなたが特定の部分を使う必要はないと思われることがよくあります。それはうまくいく。または、後であなたをお尻で噛む。通常、私たちは、たとえそれが現在余分な仕事であっても、バットで噛まれてしまうことは決してありません。通常、後で大量の作業を節約するために、少しの投資をしなければなりません。 – Christopher

+1

あなたの質問を閉じる投票は、愚かな質問をしています。モデルは必要ではなく、それが悪い設計パターンであるかどうかは、あなたの現在の要件と今後の潜在的な要件に完全に主観的です。 –

答えて

1

そして見ると、次の概念としてHtml.Raw()を使用して、それを表示するためにそれを送信し、その後、1つの文字列のみをモデルに入れて単一の文字列 にサーバー側では、ご希望のHTMLを表示:

モデル:

public class RenderedHtmlViewModel 
{ 
     public string RenderedHtml {get;set; } 
} 

ビュー:

@Html.Raw(Model.RenderedHtml) 
1

あなたがこれを行うことは避けるべきです。 Excelファイルの内容に基づいてモデルを作成し、そのモデルに基づいてビューを作成する必要があります。

+0

列数変化する?この場合のモデルの定義方法は? – user8620538

+0

あなたがしていることの詳細を知ることなく、言うことは難しいです。すべての列と行を2D配列に読み込めますか?その後、その2D配列をビューに送り、ネストされたループでそれを反復処理しますか? –

関連する問題