2012-12-14 75 views
1

我在C#和Razor中有一個ASP.NET MVC3應用程序。從ASP.NET MVC3的部分視圖加載Javascript

我使用VS2010中MVC3應用程序模板的標準_Layout.cshtml。我想在我的Partial View之一中添加Javascript代碼,只是在呈現View時,並不直接在_Layout中附加Javascript。

View看起來是這樣的:

@model MyNameSpace.ViewModels.MyViewModel 

@{ 
    ViewBag.Title = "Home Page"; 
} 

<h2>@ViewBag.Message</h2> 

@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 
    <fieldset> 
     <legend>Filters</legend> 

     @{ Html.RenderPartial("Filters", Model.Filters); } 

     <p> 
      <input type="submit" value="Submit" /> 
     </p> 

    </fieldset> 
} 

而且我Partial ViewFilters.cshtml看起來是這樣的:

@model MyNameSpace.ViewModels.FiltersViewModel 

<p> 
@Html.DropDownListFor(
    x => x.Type, 
    new SelectList(Model.Types, "Value", "Text"), 
    "-- select type --" 
) 
</p> 

<p> 
@Html.DropDownListFor(
    x => x.Category, 
    new SelectList(Model.Categories, "Value", "Text"), 
    "-- select category --" 
)</p> 

<script type="text/javascript"> 
    //Some Javascript 
</script> 

如果我離開了View這樣的,JavaScript是<body>內呈現,它看起來十分難看。我可以直接在_Layout的<head>部分添加Javascript,但它不是我想要的。我怎樣才能達到我的目的?

回答

5

添加@RenderSection("HeadContent", required: false)主佈局(母版)中,然後在局部視圖中添加像

@section HeadContent { 
     <link href="@Url.Content("~/Content/styles/admin.css")" rel="stylesheet" type="text/css" /> 
     <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>  
    } 

東西

當剃刀將編譯HTML頁面就會廣場@section塊內容從局部查看佈局(masterpage)上放置@RenderSection(「HeadContent」,必填:false)的位置。如果部分視圖中沒有@section塊,則不會添加任何內容。

相關問題