0

私が作成している大規模な Web アプリケーションのページ内ヘルプのアウトソーシングを検討しており、準備が整ったときにこのコンテンツをページに簡単に追加できるようにしたいと考えています。

そのため、アクションがビューであると期待する同じフォルダーにテキストファイルを追加し、そのファイルのコンテンツを読み込んで、そのファイルのコンテンツをビューに戻して表示できるシステムを作成できると考えていました。それか、同じことをするヘルパーを作成してください。

Controllers
   HomeController.cs

Views
   Home
      Index.aspx
      Index.txt

これにより、Index.aspx は Index.txt のコンテンツにアクセスできるようになります。

このシステムを作成するにはどうすればよいでしょうか。利用できる .NET MVC の組み込みクラスはありますか?

4

3 に答える 3

3

同様の質問が昨日尋ねられました:静的な html ファイルを ~/Content から ASP.NET MVC view に含めます

基本的に、ファイルからテキストを読み取り、使用してビュー内に含めることができるFile.ReadAllTextため、index.aspx ファイル内に次のようなものがあります。

<%= File.ReadAllText(Server.MapPath("~/Views/Home/index.txt")) %>
于 2011-04-06T08:12:00.900 に答える
1

Content フォルダーに並列階層を作成し、そこにファイルを (おそらく HTML として) 配置します。次に、並列階層規則を使用して、ビューで AJAX を介してそれらを簡単にロードできます。

Content
   Help
     Home
       index-help.html
       about-help.html
     Foo
       index-help.html
       bar-help.html

次に、あなたの見解で

  <div class="help">
  <noscript>
      <a href='@Url.Content( "~/content/help/home/index-help.html" )'>Click for Help</a>
  </noscript>
  </div>

  <script type="text/javascript">
      $(function() {
          $('.help').load( '@Url.Content( "~/content/help/home/index-help.html" )' );
      });
  </script>

ルートが一貫している場合は、ビューの RouteData からコントローラー/アクションを抽出し、ルート データによって提供されるパスを使用してこれを _Layout.cshtml ファイルに移動することもできます。

 @{
    var controller = ViewContext.RouteData["controller"] as string;
    var action = ViewContext.RouteData["action"] as string;
    var url = Url.Content( string.Format( "~/content/help/{0}/{1}-help.html", controller, action ) );

  <div class="help">
  <noscript>
      <a href="@url>Click for Help</a>
  </noscript>
  </div>

 <script type="text/javascript">
      $(function() {
          $('.help').load( "@url" );
      });
  </script>
  }
于 2011-04-06T00:15:12.023 に答える
0

考えられる解決策の1つは、ビューが期待するモデルからシリアル化されたxmlファイルとしてそれらを保存することです。次に、返されるモデルにXMLファイルのデータを入力するアクションフィルターを作成できます。それがお役に立てば幸いです。

于 2011-04-06T00:05:43.787 に答える