[转]How to add a script in a partial view in MVC4?

时间:2023-01-19 16:12:28

本文转自:https://*.com/questions/14114084/how-to-add-a-script-in-a-partial-view-in-mvc4

 

问题:

This is the code which I have in my partial view

@model Contoso.MvcApplication.Models.Exercises.AbsoluteArithmetic @using(Html.BeginForm()) { <div> <span style="width: 110px; float:left; text-align:center; font-size:2.5em;">@Model.Number1</span> <span style="width: 110px; float:left; text-align:center; font-size:2.5em;">+</span> <span style="width: 110px; float:left; text-align:center; font-size:2.5em;">@Model.Number2</span> <span style="width: 110px; float:left; text-align:center; font-size:2.5em;">=</span> <span> @Html.EditorFor(model => model.Result) @Html.ValidationMessageFor(model => model.Result) </span> </div> } @section Scripts { @Scripts.Render("~/bundles/jqueryval") }

Please note at the bottom of my code, I've got a @section, and I realized that it's not running if I set a breakpoint there. If I move that line in the _Layout.cshtml it works well, but that's not the idea.

How can I tell to MVC4 in a partial razor view that I want to add that library?

 

 

 

 

参考答案:

 

This worked for me allowing me to colocate JavaScript and HTML for partial view in same file for ease of readability

In View which uses Partial View called "_MyPartialView.cshtml"

<div> @Html.Partial("_MyPartialView",< model for partial view>, new ViewDataDictionary { { "Region", "HTMLSection" } } }) </div> @section scripts{ @Html.Partial("_MyPartialView",<model for partial view>, new ViewDataDictionary { { "Region", "ScriptSection" } }) }

In Partial View file

@model SomeType @{ var region = ViewData["Region"] as string; } @if (region == "HTMLSection") { } @if (region == "ScriptSection") { <script type="text/javascript"> </script"> }




另外关于 aspnetcore下的

How to use ViewDataDictionary with Html.Partial in asp.net core?

 

 

Another way to use this is to pass the ViewData of the current view into the constructor. That way the new ViewDataDictionary gets extended with the items you put in using the collection initializer.

@Html.Partial("MyPartial", new ViewDataDictionary(ViewData) { { "BookId", Model.Id } })