我目前有一个内置路由的AngularJS应用程序,它与静态controller
属性赋值完美配合.但我真正想做的是动态分配不同路径的控制器:
$routeProvider
.when("/Dashboards/:dashboardName",{
templateUrl:function(params) {
return "Dashboards/" + params.dashboardName;
//some ASP.NET MVC calls to return partial views (this part works)
}
})
Run Code Online (Sandbox Code Playgroud)
我想做的是在controller
这里对我的财产做同样的事情,比如:
$routeProvider
.when("/Dashboards/:dashboardName",{
templateUrl:function(params) {
return "Dashboards/" + params.dashboardName;
//some ASP.NET MVC calls to return partial views (this part works)
},
controller: function(params) {
return params.dashboardName+"Controller"; (this part DOESN'T work)
}
})
Run Code Online (Sandbox Code Playgroud)
但似乎我得到一个错误说paramsProvider
找不到
那么有什么方法可以在路由配置中动态加载我的控制器功能名称?
问题:
我需要处理web api 2异常并返回具有正确状态代码的富对象(401为Unauthorized,404为ContentNotFound等)和一些额外信息作为内容.此外,我所需要的内容,看起来像一个序列化Exception
对象(有message
,exceptionMessage
,stackTrace
,...性质).
建议的解决方案:
创建自定义异常类并编写自定义异常过滤器以应用于任何控制器的操作.这个自定义异常过滤器根据它的类型(我已经定义的一个自定义异常)处理抛出的异常,并通过类似的方式响应(过滤器的代码):
context.Response = context.Request.CreateErrorResponse(HttpStatusCode.Unauthorized,
new Exception("my exception")));
Run Code Online (Sandbox Code Playgroud)包装已经编写的web api 2 *ActionResult
类(System.Web.Http.Results.UnauthorizedResult Unauthorized()
,System.Web.Http.Results.OkResult Ok()
等)并向它们添加一些自定义数据并使用它们,以便每次调用它们时将结果传递给客户端(问题是在这种情况下我的控制器的操作的返回类型应该是IHttpActionResult
这是不一样容易测试和可读作为强类型动作).
我应该选择什么解决方案?或者还有其他方法可以做我想在这里实现的目标吗?
c# asp.net exception-handling asp.net-web-api asp.net-web-api2
谁能指出C#
语句及其类似扩展方法之间的区别?例如:foreach
vs. .ForEach
(扩展方法)。
如果有任何区别,它们是什么?安全明智吗?性能明智?哪个更好用?哪个更安全?等等。
如果没有差异,那为什么还要写它们呢?
如果我的问题没有找到我的答案,我一直在思考和搜索这个问题。