質問

私は持っています _layout.cshtml 以下に示すMVCアプリケーション用に定義されています。

@inherits System.Web.Mvc.WebViewPage
@using Webdiyer.WebControls.Mvc;

<html xmlns="http://www.w3.org/1999/xhtml">
<head>   
    @RenderSection("HeaderContent", false)
</head>

<body> 
    @RenderBody() 
</body>
</html>

ページ上 somepage.cshtml, 、レイアウトを含め、部分的なレンダリング構造も含めました。 _mailform.cshtml このページでレンダリングされる:

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

@Html.Partial("_MailForm")

私の _mailform.cshtml 次のファイルの外観:

@inherits System.Web.Mvc.WebViewPage<CMS.Models.Mail.MailModel>

@section HeaderContent
{
    <script src="@Url.Content("~/Scripts/mail.js")" type="text/javascript"></script>
}

<form>...</form>

ヘッドコンテント で宣言されたセクション _mailform.cshtml, 、からレンダリングされると仮定します _layout.cshtml とロード mail.js 脚本。スクリプトは実際です いいえ ロードされ、そのため、私のフォームロジックは機能していません。私がそれを動かしたら ヘッドコンテント セクションから _mailform.cshtmlsomepage.cshtml, 、MVCがスクリプトをロードするため、すべてが機能します。

しかし、そのスクリプトを内側からロードする方法 _mailform.cshtml ファイル?

よろしく

役に立ちましたか?

解決

わかりました、ここで書いたコメントを書きました @buildstarted, 、これは実際に私の質問に対する答えです:

「これは実際には設計によるものです。セクションは直接の親のみを入力できます。(...)問題を解決するための最も単純な方法は、すべてのJavaScriptを単一のファイルに結合することです。 JavaScriptファイルを1回だけロードする必要があるため、エンドユーザーにとっては方が良いです...しかし、それはあなたが探しているソリューションではありません。SomePage.cshtmlファイルには部分的なページがハードコーディングされているので、必要なスクリプトを含めて言いますそのページでは今のところ問題ありません。また、スクリプトをボディタグに入れても大丈夫です。」

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top