Asp.net 我能';t将附加参数绑定到AngularJS调用
我有一个ASP.NET应用程序,表单由AngularJS处理。有两个日期时间选择器(fromDate和toDate变量)和复选框,用于指示是否包括开放日期(包括IsoPenDate) 代码如下所示: 1) 在第一个AngularJS模块中:Asp.net 我能';t将附加参数绑定到AngularJS调用,asp.net,angularjs,Asp.net,Angularjs,我有一个ASP.NET应用程序,表单由AngularJS处理。有两个日期时间选择器(fromDate和toDate变量)和复选框,用于指示是否包括开放日期(包括IsoPenDate) 代码如下所示: 1) 在第一个AngularJS模块中: SearchActionsApp.controller("ListController", function($scope, $location,$q, Actions, ActionDates, CounterAgents,Counteragents, A
SearchActionsApp.controller("ListController", function($scope, $location,$q, Actions, ActionDates, CounterAgents,Counteragents, AsyncTask) {
...
$scope.actionsQuery = {
searchText: "",
fromDate: new Date(moment().format("MM/DD/YYYY")),
toDate: new Date(moment().add('d', 3).format("MM/DD/YYYY")),
isOpenDatesIncluded: false,
...
ActionDates.query({ actionId: action.Id, isOpenDatesIncluded: $scope.actionsQuery.isOpenDatesIncluded, fromDate: $scope.actionsQuery.fromDate, toDate: $scope.actionsQuery.toDate }, task.success, task.error);
...
}
2) 在service.js中:
.factory('ActionDates', function ($resource) {
return $resource('/RestApi/api/ActionDates', {});
})
3) 在服务器端:
[HttpGet]
public IEnumerable<ActionDateItem> GetByQuery([FromUri]ActionDateQuery query)
{
return _service.QueryActionDates(query);
}
public IEnumerable<ActionDateItem> QueryActionDates(ActionDateQuery query)
{
var sql = query.BuildSql();
using (var cn = CreateSqlConnection())
{
return cn.Query<ActionDateItem>(sql, new
{
query.ActionId,
query.IsOpenDatesIncluded,
BeginDate = query.FromDate,
EndDate = query.ToDate
});
}
}
public class ActionDateQuery
{
public ActionDateQuery()
{
ActionId = -1;
IsOpenDatesIncluded = false;
FromDate = new DateTime(1980, 1, 1);
ToDate = DateTime.Now.AddYears(1);
}
public long ActionId { get; set; }
public bool IsOpenDatesIncluded { get; set; }
public DateTime FromDate { get; set; }
public DateTime ToDate { get; set; }
}
[HttpGet]
公共IEnumerable GetByQuery([FromUri]ActionDateQuery查询)
{
return\u service.QueryActionDates(查询);
}
公共IEnumerable查询操作日期(ActionDateQuery查询)
{
var sql=query.BuildSql();
使用(var cn=CreateSqlConnection())
{
返回cn.Query(sql,新建
{
query.ActionId,
query.isopendate包括在内,
BeginDate=query.FromDate,
EndDate=query.ToDate
});
}
}
公共类ActionDateQuery
{
公共ActionDateQuery()
{
ActionId=-1;
IsOpenDatesIncluded=假;
FromDate=新的日期时间(1980,1,1);
ToDate=DateTime.Now.AddYears(1);
}
公共长ActionId{get;set;}
公共bool isopendates包含{get;set;}
公共日期时间FromDate{get;set;}
公共日期时间ToDate{get;set;}
}
问题是,查询返回的数据集从:1980、1、1到DateTime.Now.AddYears(1),但我需要返回从客户端获得的范围为:fromDate-toDate的数据
客户端附加到RestApi URL的参数是正确的,但我只在服务器端获得第一个参数-ActionId。我没有其他3个-包括IsoPendate,FromDate和ToDate
我不知道如何在service.js文件中绑定它们
如何做到这一点?Try:For GET方法使用[FromUri]。对于POST方法,请使用[FromBody],如下面的public IEnumerable QueryActionDates([FromUri]ActionDateQuery查询),我已经有了它。请看一看我刚刚编辑过的原始帖子。请分享一段代码,您正在制作$http.get。这里没有$http.get。我们使用$resource。