0

私の会社には、phpで開発された共通のヘッダーがあります。そのページをプロジェクトのレイアウトページにインポートする必要があります。ヘッダーは「company.com/inc/custom/footer2sn/」と呼ぶことができます

どうやってこれを呼ぶことができますか?

4

2 に答える 2

4

含めるページが静的 HTML ページである場合は、Partial を使用できます。somepage.html を somepage.cshtml に変更するだけです。

例:

@Html.Partial("~/Path/to/somefile.cshtml")

通常の HTML ファイルをレンダリングしようとすると、ページが見つからない、レンダリング エンジンが見つからないなどのエラーが発生します。

SO 静的 HTML ページがある場合は、拡張子を CSHTML に変更し、@Html.Partial() を使用します。

また

インクルードするヘッダーが PHP ファイルである場合、サーバーが稼働中で、PHP ページから生成された HTML を提供する準備ができている限り、それは可能です。

カスタム HTML ヘルパーを作成できます

public static class MyHelpers
{
  public static HtmlString RenderPHP(this HtmlHelper helper, string path)
  {
    var requestContext = helper.ViewContext.RequestContext;
    UrlHelper url = new UrlHelper(requestContext);
    var client = new WebClient();
    var returnString= client.DownloadString(new Uri(string.format("Http://{0}{1}",      requestContext.HttpContext.Request.Url.Host, url.Content(path))));
    return MvcHtmlString.Create(returnString);
  }

}

簡単に言えば、これは単に PHP ページから生成された HTML を受け取り、それをページ内のセクションに挿入するだけです。

ページ内でこれを使用するには、次のように Razor 構文を使用します。

<div id="phpPage">
   @Html.RenderPHP("company.com/inc/custom/footer2sn/somepage.php"). <!-- Note this must on a server capable of rendering the php  -->

ソース

于 2013-03-12T06:06:05.010 に答える
0

使用できますHtml.RenderPartial

@{ Html.RenderPartial("SomeView"); }

ただし、レイアウトを相互に階層的に継承し、HTML を共通のレイアウト要素に属するレイヤーに直接配置することをお勧めします。

_Layout.cshtml

<!doctype html>
<html>
    <head>
        ...
    </head>
    <body>
        <header>
            ...
        </header>

        @RenderBody()

        <footer>
            ...
        </footer>
    </body>
</html>

_TwoColumnLayout.cshtml

@{ Layout = "~/Views/Shared/_Layout.cshtml"; }

<div id="container">

    <div id="content">
        @RenderBody()
    </div>

    <aside id="sidebar">
        ...
    </aside>
</div>

このようなレイヤーを必要なだけ深く構築し続けることができます。Layout継承元のテンプレートに設定し@RenderBody()、次の子テンプレートまたはビューのコンテンツを配置するだけです。

于 2013-03-11T20:15:02.747 に答える