我的asp.net应用程序中有html选择表单:
<select class="form-control" name="ageOption" asp-for="AgeOption" value="Equals">
<option>Equals</option>
<option>More Than</option>
<option>Less Than</option>
</select>
将来,我想创建一个使用这些值的查询并将它们转换为比较操作
public async Task<IActionResult> Find(int age, string ageOption)
{
var users = new List<User>();
await Task.Run(() => users = session.Query<User>()
.Where(u => u.Age **ageOption** age);
}
由于您使用的是数据库查询,因此可以修改查询,然后稍后运行:
public async Task<IActionResult> Find(int age, string ageOption) {
// var users = new List<User>(); // don't do this - it creates an empty List that you immediately replace below
List<User> users;
var q = session.Query<User>();
switch (ageOption) {
case "Equal":
q = q.Where(u => u.Age == age);
break;
case "More":
q = q.Where(u => u.Age > age);
break;
case "Less":
q = q.Where(u => u.Age < age);
break;
}
await Task.Run(() => users = q.ToList());
}