0

在MVC5中,我有一個經典的佈局,菜單位於左側,主要內容區域位於右側。Helper只更新主要內容的MVC5?

該菜單有3個按鈕。他們應該用不同的視圖(索引,索引2,索引3)更新主要內容。

當我使用@ Url.Action()嘗試重新加載整個頁面。我只想以期在@RenderBody()

<button onclick="location.href='@Url.Action("Index", "Home")'">Index</button> 
<button onclick="location.href='@Url.Action("Index2", "Home")'">Index2</button> 
<button onclick="location.href='@Url.Action("Index3", "Home")'">Index3</button> 

更新1被渲染:

<div class="row"> 
    <div id="col-main" class="col-sm-12"> 
     <div class="well"></div> 
     <div id="renderBody"> 
      @RenderBody() 
     </div> 
    </div> 
</div> 
+1

如果您只想更新同一頁面的一部分,則需要使用ajax。 –

+0

很有道理,非常感謝。我會適應它。我想我會在這裏幫助那些幫手。我的錯。 – radbyx

+0

我回來的html怎麼樣?如何讓它進入RenderBody()?我可以在div上設置它,但是有更好的練習方法來使用RenderBody()嗎? – radbyx

回答

4

您可以使用此...

@Ajax.ActionLink("Edit", "Edit", new { id = item.ID }, new AjaxOptions { UpdateTargetId = "targetDiv", InsertionMode = InsertionMode.Replace,HttpMethod = "GET"}) 

你可以提供你的右側面板ID作爲目標區域,在那裏你可以渲染你想要的視圖... 我希望這會對你有所幫助。

+0

我必須在它工作之前添加兩件事,但非常感謝讓我走上正軌。 1)在控制器中,我應該返回一個「PartialView」而不是「查看」 2)我必須添加「@ Scripts.Render(」〜/ Scripts/jquery.unobtrusive-ajax.min.js「 – radbyx

+0

yes you可以做到這一點........和部分也由jquery調用 –