2013-10-04 68 views
1

我開始用ASP.NET MVC 4和Durandal開發SPA。
我定製了durandal視圖定位器來調用我的MVC控制器並使用'.cshtml'文件作爲我的視圖。這樣做,有可能使用剃刀語法,做這樣的事情:DurandalJS - MVC控制器的參數

@if (Roles.IsUserInRole("Admin")) 
{ 
    // Code 
} 

不過,我需要將參數傳遞給我的控制器加載不同的數據,然後把它作爲視圖的模型。例如,我有一個儀表板列表,當用戶點擊打開時,我必須傳遞儀表板的ID來加載它的結構。
我的路由配置是這樣的:

var routes = [ 
      { route: 'dashboard/:id', moduleId: 'dashboard', title: 'Dashboard' }]; 

儀表板的視圖模型的激活功能,接收參數,但我需要的ID發送到MVC控制器。
我一直在尋找一些方法來做到這一點,但我還沒有找到任何東西。有這個question是相似的,但它沒有回答。
任何建議表示讚賞。謝謝! :d

+0

其中有一個問題我一直有關於包裝迪朗達爾作爲的NuGet MVC包就是爲什麼你會同時擁有客戶端和服務器端的MVC。我在這裏看到幾個關於他們如何踩對方腳趾的問題。使用兩者的任何理由? –

+0

我正在使用durandal爲我的用戶提供更流暢的應用程序。它可以幫助我在其他視圖(即登錄,菜單,配置等)之間進行導航。但是我必須生成一個動態HTML,具體取決於哪個儀表板正在打開。最簡單的方法是使用剃鬚刀語法。我可以做一個foreach並調用js組件或partials視圖來呈現我的控件。 –

回答

0

在您的外殼

define(['plugins/http', 'plugins/router'], function(http, router){ 

    // make call to build routes based on authenticated user (implement to return an array in 'routes') 
    http.get('URL_for_RoutesCurrentUser') 
     .then(function(result) { 
     $.each(result.routes, function(key, value){ 
      router.routes.push(value); 
     }); 
     }); 
}) 
+0

感謝您的貢獻!我現在很忙,但稍後會試一試。 –