簡體   English   中英

ASP.NET MVC-具有內容的可重用控件

[英]ASP.NET MVC - Reusable Control with Content

我有一個ASP.NET MVC應用程序。 在我的應用中,我有多個布局文件(約10個)。 我在整個布局文件中都有類似的HTML塊。 因此,我希望將其置於可重用的控件中,因為我預計將需要對其進行一些更改。

在引用使用此控件的布局文件的某些頁面上,我想在控件的內容區域中插入一些內容。 為了演示,假設我有一個這樣的布局文件:

_Layout.cshtml

@** MY REUSED BANNER CONTROL GOES HERE **@

<div class="container">
  @RenderBody()
</div>

Banner.file [不確定使用什么]

<div class="container-fluid">
  <div class="row">
    <div class="col-lg-3">
      Hello
    </div>

    <div class="col-lg-3">
       @RenderSection("bannerContent", required: false)      
    </div>

    <div class="col-lg-3">
      Leave
    </div>
  </div>
</div>

MyPage.cshtml

@{
  Layout = "~/Views/Shared/_Layout.cshtml"
}

<div>
  Main content goes here
</div>

@section bannerContent {
  <div>This goes into Banner.file</div>
}

上面的代碼不起作用。 在這里傳達想法。 根據我的理解,局部視圖不起作用,因為局部視圖不支持部分。 我在這里有什么選擇?

如果我能理解,您需要這樣的東西。

  • 在〜/ Views / Shared中創建_banner.cshtml。

     <div class="container-fluid"> <div class="row"> <div class="col-lg-3"> Hello </div> <div class="col-lg-3" id="banner_content"> // Here your page specific content will go </div> <div class="col-lg-3"> Leave </div> </div> 

  • _LayOut.cshtml

     @Html.Partial("_banner"); // Reusable banner html <div class="container"> @RenderBody() </div> 
  • MyPage.cshtml

     @{ Layout = "~/Views/Shared/_Layout.cshtml"; } <div> Main content goes here </div> @section Scripts { $(document).ready(function(){ $('#banner_conten').html('Your dynamic part.'); }); } 

    我不確定我是否完全了解您的要求。 但是請檢查是否對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM