gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:56 25 4
gpt4 key购买 nike

我正在从使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com