DurandalJS - MVC控制器的参数

时间:2013-10-04 12:10:35

标签: asp.net-mvc-4 durandal single-page-application

我开始使用ASP.NET MVC 4和Durandal开发SPA 我定制了durandal视图定位器来调用我的MVC控制器并使用'.cshtml'文件作为我的视图。这样做,可以使用Razor语法并执行以下操作:

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

但是,我需要将参数传递给Controller以加载不同的数据,然后将其作为视图模型传递。例如,我有一个仪表板列表,当用户点击打开时,我必须通过仪表板的id来加载其结构。
我的路线配置如下:

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

仪表板的viewmodel的activate功能接收参数,但我需要将id发送给MVC控制器。
我一直在寻找一些方法来做到这一点,但我还没有找到任何东西。这个question类似,但没有回答 任何建议表示赞赏。谢谢! :d

1 个答案:

答案 0 :(得分:0)

在你的shell中

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);
        });
      });
})