2012-10-04 22 views
0

我在asp.net MVC 3應用程序的工作,我有這樣的一個部分佈局頁:在asp.net視圖動態變化@section

<div class="rt-block"> 
           <div id="rt-mainbody"> 
            @if (IsSectionDefined("BodyTitle")) 
            { 
             <div class="rt-headline"> 
              <h1 class="rt-article-title"> 
               @RenderSection("BodyTitle", false) 
              </h1> 
             </div> 
            } 
            <div class="clear"> 
            </div> 
            <div> 
             @RenderBody() 
            </div> 
           </div> 
          </div> 

在我看來,我定義的部分像這樣:

@section BodyTitle { 
    <span>Verify</span> Your Identity 
} 

partail view here 

該視圖根據鏈接點擊加載兩個部分視圖之一。

我希望當一個部分視圖被加載時,部分有不同的文本,當其他部分視圖被加載時,它應該有不同的文本。如何更改部分視圖更改的部分內容?

我試圖移動部分到部分視圖,但在這種情況下,它根本沒有加載。我們不能在佈局視圖中聲明的局部視圖中定義節嗎?

請建議

+0

你能否告訴我你在相同視圖或不同視圖中的部分視圖? – Rajpurohit

回答

0

您不能在部分視圖中定義節。它們必須在主視圖中定義。所以基本上你需要的是在點擊鏈接時更新DOM的2個不同部分。實現此目的的一種可能方法是在控制器操作內對render the partial view to a string進行處理,然後返回包含具有相應部分內容的2個屬性的JSON結果。

return Json(new 
{ 
    partialHtml = RenderPartialViewToString("_SomePartial"), 
    sectionHtml = RenderPartialViewToString("_SomeSection") 
}); 

然後:

$.ajax({ 
    url: '...', 
    type: 'POST', 
    success: function(result) { 
     // first update the partial 
     $('#partialContainerId').html(partialHtml); 

     // now update the section 
     $('.rt-article-title').html(sectionHtml); 
    } 
}); 

你可以外部化內部的部分章節的內容。

+0

感謝您的回覆。在這種情況下URL是什麼,這個代碼需要添加到主視圖和控制器動作或局部視圖/控制器動作中? – DotnetSparrow

+0

該URL將是您通過AJAX調用調用的控制器操作的URL。由於我已經顯示的代碼是JavaScript,它必須進入一個單獨的JavaScript文件。 –