Проблема частичного рендеринга ASP.NET MVC с использованием Razor - PullRequest
4 голосов
/ 29 октября 2010

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

Раздел HeaderContent , объявленный в _MailForm.cshtml , предполагается, что он будет отрисован из _Layout.cshtml и загружен mail.js скрипт , Сценарий на самом деле не загружен, и из-за этого моя логика формы не работает. Если переместить этот раздел HeaderContent из _MailForm.cshtml в SomePage.cshtml , все будет работать, поскольку mvc загружает скрипт.

Но как загрузить этот скрипт из _MailForm.cshtml файла?

Привет

1 Ответ

3 голосов
/ 02 ноября 2010

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

"Это на самом деле задумано. Разделы могут заполнять только прямой родитель. (...) самый простой способ [решить проблему] состоит в том, чтобы объединить весь ваш javascript в один файл. уменьшить полосу пропускания загрузки страниц и, как правило, сделать ее более удобной для конечных пользователей, поскольку им приходится загружать файл javascript только один раз ... однако это не то решение, которое вам нужно. сказал бы, что включение необходимого сценария на этой странице пока нормально. Также можно помещать сценарии в тег body. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...