c# - "filter"是 Angular、Javascript 还是 ASP.Net MVC 中的保留字?

标签 c# javascript ajax asp.net-mvc angularjs

我正在从使用 angularJS 的服务调用 ASP.Net MVC Controller :

$http({
    method: "get",
    url: "ControllerMethod",
    params: {
        param1: param1Value,
        pageNumber:  pageNumber,
        pageSize: pageSize,
        filter: filter
    }
}).success(function (data) {
    callback(data);
}).error(function () {
    alert("Error.");
});

Controller 签名是:

public ActionResult GetAssetDepreciationList(
     int pageNumber, int pageSize, int param1, MyFilterType filter)

当如图所示运行时,“filter”参数始终为 null。我有许多类似的方法可以正常工作。

当我改变时:

 filter: filter

到:

anythingElse : filter

它按预期工作。 “过滤器”是保留字吗?如果是,适用于哪个框架(MVC、Javascript 或 Angular)?

最佳答案

看起来你的过滤器是复杂类型 MyFilterType 看看 this

您可能需要创建自定义解析器。如果您想避免这种情况,您还可以保留模型(也就是说,如果 MyFilterType 是 POCO)并通过请求正文传递过滤器(作为 JSON)。

此外,如果您的过滤器非常复杂,我建议您使用 OData。由于您已经在使用 .NET,它是一个可以进行查询的简单 Nuget 包,它的标准化和解析器已经存在,而且它是可配置的,可以直接应用于 IQueryable。

一些更有用的信息可能是..什么是 MyFilterType 以及 :filter 中实际的数据是什么。

更新:

有趣的问题我认为它与查询字符串和模型解析有关......我能够通过......以下内容使其工作:(需要 System.Web.Http )

 public ActionResult GetAssetDepreciationList(
      int pageNumber, int pageSize, int param1, [FromUri] MyFilterType filter)

并将过滤器的各个参数名称扁平化到参数 so..

params: angular.extend({
                           param1: paramValue,
                           pageNumber: pageNumber,
                           pageSize: pageSize,
                        },filter)

我假设 var filter = {paramA:1,paramB:2,paramC:3};

关于c# - "filter"是 Angular、Javascript 还是 ASP.Net MVC 中的保留字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20960876/

相关文章:

c# - 如何在 ASP.NET MVC 2 中的自定义模型绑定(bind)器中获取 FormValueProvider 实例

javascript - 如何将 MSAL(用于 js 的 Microsoft 身份验证库)正确导入并使用到 javascript(非 typescript ) react 单页应用程序中?

具有混合值类型的 JavaScript 数组排序 - 寻找合适的比较函数

javascript - 在没有表单的情况下使用 jQuery 和 Rails 定期 ping 服务器,更新表

javascript - 生成响应后,如何在另一种方法中获取ajax请求的响应?

c# - 动态 WPF 图像加载问题

c# - 无法调试 - "The breakpoint will not currently be hit. No symbols have been loaded for this document"

javascript - 使用 AJAX 请求生成 PDF

C#:如果一个线程失败,则终止其他线程

javascript - 有没有办法让鼠标滚轮触发Javascript中的 "hover"事件?