我正在研究MVC 5应用程序。我在控制器中有一个方法,它接受5个参数,其中一个是整数数组。此数组将用于根据db中包含的值从db中检索特定信息。
控制器方法的代码如下所示:
public JsonResult varyByStudyPeriod(int buildingId, int baselineLocationId, int baselineStandardId, int baselinePeriod, int [] altPeriod)
{
var data = from r in db.ResidentialDatas
where r.BuildingId == buildingId
&& r.LocationId == baselineLocationId
&& r.StandardId == baselineStandardId
&& r.Year == baselinePeriod
//&& altPeriod.Contains(r.Year)
select new { r.LCC, r.Year };
return Json(data, JsonRequestBehavior.AllowGet);
}
年份只是数据库中从1到40的整数。
但是,注释行是Json请求失败的地方。是否有可能引导我朝着正确的方向前进?
JSON请求的url如下所示。格式似乎是问题,因为该方法不检索所请求的信息。
/ResidentialBuilding/varyByStudyPeriod?buildingId=1&baselineLocationId=1
&baselineStandardId=1&baselinePeriod=1&**altPeriod=2,3**
答案 0 :(得分:1)
您的查询参数未以默认模型绑定器可以理解的形式提供altPeriod
。如果您无法更改调用者正在使用的格式,您可以将altPeriod
参数类型更改为string
,然后自己将其拆分为整数。如果你可以更改调用者,你可以改变它构建查询字符串的方式,使它看起来像这样:
?buildingId=1&baselineLocationId=1&baselineStandardId=1&baselinePeriod=1&altPeriod=2&altPeriod=3
^^^^^^^^^^^^
altPeriod
参数的重复将告诉模型绑定器所有这些值都属于一起,它们都会在数组中结束。