2017-03-04 90 views
0

我有一個問題,因爲我不知道如何在用戶儀表板中編寫子視圖。ASP .Net MVC |如何在視圖中添加子視圖

實施例:

我對登錄用戶的儀表板和有路徑儀表板/資料。 儀表板 - 控制器,配置文件 - 視圖。 在配置文件視圖中,我希望創建名爲Overview,個人數據,更改密碼的節/子視圖(我不知道它是如何調用的)。

我有一個左邊的菜單,我想知道如果我點擊「個人數據」,它會在右邊的容器中加載個人數據的內容 - 但沒有重新加載所有頁面。 與點擊「更改密碼」相同的情況下,我想在右側顯示「更改密碼」視圖的內容 - 無需重新加載。

我該如何得到它?誰能幫忙?

在此先感謝!

+0

您需要javascript和ajax才能將內容動態加載到視圖中,而無需刷新頁面。 –

+0

@StephenMuecke我的意思是我需要用我需要的動作創建ActionResults方法?並單獨改變密碼,個人資料和概覽的部分視圖?我是對的 ? – vlan99

+0

是的。如果你想說彈出一個對話框來顯示一個表單來改變用戶密碼,你可以使用'$(someElement)load('@ Url.Action(...)')'來調用服務器方法,該方法返回一個局部你的'ResetPasswordForm'的視圖,並將其插入'someElement' –

回答

0

這是你要找的嗎? Partial Views

+0

是的,但如果我沒有錯,如果我們不想重新加載頁面,可以使用部分視圖。我的意思是部分視圖永久包含在主視圖中。我想知道,只有當我點擊菜單中的適當按鈕時纔會加載這些「部分視圖」。 – vlan99

+0

如上所述。我建議使用websockets而不是使用其他技術。看看這個 - https://radu-matei.github.io/blog/aspnet-core-websockets-middleware/以及這篇文章 - https://radu-matei.github.io/blog/real-time -aspnet核心/ –

0

我會看看從控制器和AJAX獲取請求返回部分視圖。

在控制器

public class SomeController : Controller 
{ 
    [HttpGet] 
    public ActionResult SomeAction() 
    { 
     // do some stuff 
     return PartialView(); 
    }  
} 

在你的js腳本

$.ajax({ 
    url: '/Some/SomeAction', 
    contentType: 'application/html; charset=utf-8', 
    type: 'GET', 
    datatype: 'html' 
}) 
.success(function (result) { 
    $("#container").html(result); 
}) 
.error(function (xhr, status) { 
    alert("We are having trouble, please try again later"); 
}); 

當然來處理這些東西的最佳方法是使用像角2或反應的前端框架。