gpt4 book ai didi

c# - 在 MVC 应用程序中搜索

转载 作者:行者123 更新时间:2023-12-02 22:42:35 25 4
gpt4 key购买 nike

我有一个页面,其中为用户提供了四个搜索 字段。我假设采用字段的交集并显示结果。但是,用户不需要填写所有字段。

在我的 Controller 中,我有以下代码。

string subject = (string)Session[d.sessionSearchSubject];
string courseNumber = (string)Session[d.sessionSearchCourseNum];
string yearLev = (string)Session[d.sessionSearchYearLev];
string period = (string)Session[d.sessionSearchPer];


if (!(subject.Equals("") && courseNumber.Equals("") && yearLev.Equals("") && period.Equals("")))
{
db.Courses.Where(a => a.subject.Equals(subject) && a.coursenumber.Equals(courseNumber) && a.period.Equals(period...
}
else if (!(subject.Equals("") && courseNumber.Equals("") && yearLev.Equals("")))
{
// Query the database.
}
else if (!(subject.Equals("") && courseNumber.Equals("") && period.Equals("")))
{
// Query the database.
}
else if (!(subject.Equals("") && yearLev.Equals("") && period.Equals("")))
...

如您所见,会有很多 if 语句。我想知道是否有更好的方法来做到这一点?即,如果字段为空,则忽略该字段的单个查询语句。或者,如果我可以用等同于“任何”的内容替换空字符串???

最佳答案

您可以将结果分为四个语句,分别对应四个标准:

var results = db.Courses;
if(!string.IsNullOrEmpty(subject))
results = results.Where(c => c...);
if(!string.IsNullOrEmpty(courseNumber))
results = results.Where(c => c...);
...etc...

保持它的简洁和可扩展性,同时也只将条件附加到必要的 sql 查询。

关于c# - 在 MVC 应用程序中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10556899/

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