ASP.NET MVC Частичное рендеринг выпуска с использованием бритвы

StackOverflow https://stackoverflow.com/questions/4051732

Вопрос

У меня есть _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>

На странице WEMPAGE.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>

То HeaderContent. раздел объявлен _Mailform.cshtml., предположим, чтобы быть сделано из _Layout.cshtml. и загрузка Mail.js. скрипт Сценарий на самом деле нет загружен и из-за того, что моя форма логики не работает. Если я перемещу это HeaderContent. раздел от _Mailform.cshtml. к WEMPAGE.CSHTML., Все работает, потому что MVC загружает скрипт.

Но как загрузить этот сценарий изнутри _Mailform.cshtml. файл?

С уважением

Это было полезно?

Решение

Хорошо, я перепишу здесь комментарий, написанный @BuildStarted, который на самом деле отвечает на мой вопрос:

«Это на самом деле по дизайну. Разделы могут заполнить только прямой родитель. (...) Самый простой метод [для решения проблемы] будет сочетать весь ваш JavaScript в один файл. Это будет уменьшить полосу пропускания Pageloads и, как правило, Это лучше для конечного пользователя, так как они должны загрузить файл JavaScript только один раз ... однако это не решение, которое вы ищете. Поскольку файл wewpage.cshtml имеет частичную страницу, которую я бы сказал, включая ваш необходимый скрипт На этой странице сейчас в порядке. Также это нормально, чтобы положить скрипты в тегу тела ».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top