2012-03-23 7 views
0

配備後にサイトに追加されたカスタムページをサポートする必要のあるASP.NET MVC 2サイトがあります。配備後にASP.NET MVC 2サイトをカスタマイズする

routes.MapRoute("Page", "Page/{name}", new { controller = "Custom", action = "Page" }); 

をし、コントローラのアクションを追加しました:これまでのところ、私は、カスタムページ用にルートを作成している

public ActionResult Page(string name) { 
    return View(@"~\Content\Custom\Pages\" + name +".aspx"); 
} 

これが正常に動作します。これは〜\ Content \ Custom \ Pagesフォルダに置かれたページを名前で表示します。 問題は、ページにコードビハインドロジックを追加することができない場合があることです。バックエンドロジックをビューに追加することを避けたいと思います。

あまりにも騒がしいことなくコントローラを動的に追加する方法はありますか?

いずれの解決策も展開の更新に耐える必要があるため、web.configまたは他の展開されたファイルを変更することは実現できません。

答えて

1

実行時に、必要なコードを使用してコントローラページを編集できます。これは、コントローラが実行時に再コンパイルされるため、構成の変更を必要としません。

例えば

:あなたは新しいのStreamWriterを開き、コントローラからの実行時にモデルを呼び出すためのコードを追加することができます

string newLine = "\t\tModels." + AppName + 
    "DataContext context = new Models." + AppName + 
    "DataContext();\n\t\treturn View(context." + AppName + "s);"; 
result.WriteLine(newLine); 
関連する問題