MVC, Razor @section ne comprend pas les Scripts
J'ai:
- VS 2013
- MVC 5.2.2
- Rasoir 3.2.2
Laissez-moi savoir si il ya quelque chose que vous devez savoir.
Ce problème se produit uniquement sur un point de vue page.
J'ai Vue avec toutes les balises HTML fermé correctement
C'est votre vue standard...
@model MyNameSpace.Models.Inquiry
@{
var hasFormSetup = Model != null && Model.FormSetup != null && Model.FormSetup.Count > 0;
if (hasFormSetup)
{
ViewBag.Title = Model.FormSetup[0].InquiryValue;
}
Layout = "~/Views/Shared/_LayoutInquiry.cshtml";
}
<style scoped>
ul {
list-style-type: none;
}
</style>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="container" style="margin-top: 5px;">
etc...
</div>
<div class="container" >
etc...
</div>
}
@section Scripts
{
<script type="text/javascript">
$(document).ready(function () {
etc...
});
</script>
}
mais...
sur la ligne
@section Scripts
Resharper rapports: "Impossible de résoudre la section" Scripts de
Quand je le lance, j'obtiens l'exception:
Source: System.Web.WebPages
Target: Void VerifyRenderedBodyOrSections()
Type: HttpException
Message: The following sections have been defined but have not been rendered for the layout page "~/Views/Shared/_LayoutInquiry.cshtml": "Scripts".
Stack: at System.Web.WebPages.WebPageBase.VerifyRenderedBodyOrSections()
at System.Web.WebPages.WebPageBase.PopContext()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at System.Web.WebPages.WebPageBase.<>c__DisplayClass3.<RenderPageCore>b__2(TextWriter writer)
at System.Web.WebPages.HelperResult.WriteTo(TextWriter writer)
at System.Web.WebPages.WebPageBase.Write(HelperResult result)
at System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action`1 body)
at System.Web.WebPages.WebPageBase.PopContext()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
etc...
Aucune autre page a cette question.
Aucune idée de comment je peux résoudre ce problème?
- Est-ce que votre
_LayoutInquiry.cshtml
page ont unScripts
section? S'il vous plaît ajouter le fichier à votre question. Il devrait avoir@RenderSection("Scripts", false)
, à un endroit approprié à l'intérieur. (Le message dit tout: Les sections suivantes ont été définies, mais n'ont pas été rendus pour la mise en page "~/Views/Shared/_LayoutInquiry.cshtml": "Scripts".) - omg. Je me sens tellement comme un doofus. Merci d'ajouter ce que une réponse et je vais vous donner les points... Vous savez ce qu'il fait quand cela se produit? Vous obtenez l'ensemble du corps dupliquées sans aucune source de données - afin que votre page d'erreur par défaut s'affiche en bas de votre page...
Vous devez vous connecter pour publier un commentaire.
Le message d'exception dit:
Ceci suggère que votre
_LayoutInquiry.cshtml
page n'est pas de l'installation d'un espace réservé pour unScripts
section. Vous pouvez le faire en ajoutant@RenderSection("Scripts", false)
à votre page de présentation dans l'emplacement approprié, où lafalse
indique que les points de vue peuvent éventuellement cette section.Maintenant, quand votre vue affiche, le contenu de
@section Scripts { ... }
à votre avis sera rendu dans l'emplacement de la@RenderSection("Scripts", false)
appel dans votre mise en page.Pour d'autres personnes qui pourraient se retrouver. Tout fonctionne OK mais ReSharper se plaint au sujet de l'Article et de Styles manquant.
Notre cas est que nous avons eu _Layout.cshtml et _Layout.Mobile.cshtml dans le dossier partagé.