我开始使用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
答案 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);
});
});
})