私の会社には、phpで開発された共通のヘッダーがあります。そのページをプロジェクトのレイアウトページにインポートする必要があります。ヘッダーは「company.com/inc/custom/footer2sn/」と呼ぶことができます
どうやってこれを呼ぶことができますか?
私の会社には、phpで開発された共通のヘッダーがあります。そのページをプロジェクトのレイアウトページにインポートする必要があります。ヘッダーは「company.com/inc/custom/footer2sn/」と呼ぶことができます
どうやってこれを呼ぶことができますか?
含めるページが静的 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 -->
使用できます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()
、次の子テンプレートまたはビューのコンテンツを配置するだけです。