在我的var cultureValueId = 2;
var data = LoadData();
var description = data
.Where(_ => _.CultureValueId == cultureValueId && _.SystemKey == "lblEmpNumber").ToList()
.Select(q => q.TestBCollection
.Where(_ => (_.CultureValueId == q.CultureValueId && !string.IsNullOrEmpty(_.Description)))
.Select(b => b.Description.TrimEnd(':')).FirstOrDefault()).SingleOrDefault();
if (string.IsNullOrEmpty(description))
{
description = data
.Where(_ => _.CultureValueId == cultureValueId && _.SystemKey == "lblEmpNumber").ToList()
.Select(q => q.TestBCollection
.Where(_ => _.CultureValueId == q.CultureValueId && !string.IsNullOrEmpty(_.Description))
.Select(b => b.Description.TrimEnd(':'))
.DefaultIfEmpty(q.Description.TrimEnd(':'))
.FirstOrDefault()).SingleOrDefault();
}
我有模特
WebAPI
我的行动是
public class ListRequest
{
public int Skip { get; set; } = 0;
public int Take { get; set; } = 30;
}
我需要有可能不传递任何查询参数,然后应该使用默认值。但是,当我转到 [HttpGet]
[Route("api/users")]
public IHttpActionResult Get([FromUri] ListRequest request) {
...
}
时,http://localhost:44514/api/users
为空。如果我删除request
,则[Route("api/users")]
不为空且具有参数的默认值。
如何使用Route属性达到该行为?
答案 0 :(得分:1)
如果您想使用Route属性初始化模型,请尝试
Route("api/users/{*pathvalue}"")]
答案 1 :(得分:0)
在发布请求的基础上创建您的方法。获取类型始终接收空值。
[HttpGet]
[Route("api/users")]
public IHttpActionResult Get([FromUri] ListRequest request) {
}
更改为
[HttpPost]
[Route("api/users")]
public IHttpActionResult Get([FromUri] ListRequest request) {
...
}
因为Model(Class)类型参数不支持get type request。
希望它能提供帮助。
答案 2 :(得分:0)
使用数据注释。有关更多信息,请访问Default value in mvc model using data annotation
更改
public class ListRequest
{
public int Skip { get; set; } = 0;
public int Take { get; set; } = 30;
}
收件人
public class ListRequest
{
[DefaultValue(0)]
public int Skip { get; set; }
[DefaultValue(30)]
public int Take { get; set; }
}
它可以在不删除[Route(“ api / users”)]的情况下运行,并且请求不会为空。