Question

J'ai _Layout.cshtml défini pour mon application mvc, qui est indiqué ci-dessous:

@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>

Sur la page SomePage.cshtml , j'ai inclus la mise en page, et comprend également la construction de rendu partiel, parce que je veux que mon _MailForm.cshtml à rendre sur ce page:

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

@Html.Partial("_MailForm")

Mon _MailForm.cshtml apparence de fichiers suivants:

@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 a déclaré _MailForm.cshtml , supposons à rendre de _Layout.cshtml et charge mail.js script. Le script est en fait pas chargé et à cause de cela ma logique de forme ne fonctionne pas. Si je propose que HeaderContent de _MailForm.cshtml SomePage.cshtml , tout fonctionne parce que le script charges mvc.

Mais comment charger ce script à l'intérieur _MailForm.cshtml fichier?

Cordialement

Était-ce utile?

La solution

Ok, je vais réécrire ici le commentaire écrit par @BuildStarted , qui est en fait répondre à ma question:

"Ceci est en fait par la conception. Les sections ne peuvent alimenter le parent direct. (...) la méthode la plus simple [pour résoudre le problème] serait de combiner tous vos javascript dans un seul fichier. Ce serait diminuer la bande passante et pageloads font généralement mieux pour l'utilisateur final car ils doivent charger un fichier javascript qu'une seule fois ... mais ce ne est pas la solution que vous recherchez. Depuis le fichier SomePage.cshtml a la page partielle codée en dur I serait dire y compris votre script requis dans cette page est ok pour l'instant. de plus, il est OK pour mettre les scripts dans la balise body. "

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top