【发布时间】:2012-05-20 09:03:13
【问题描述】:
我有一个页面,其中为用户提供了四个 搜索 字段。我想取字段的交集并显示结果。但是,用户不需要填写所有字段。
在我的控制器中,我有以下代码。
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 语句。我想知道是否有更好的方法来做到这一点?即,如果字段为空,则忽略该字段的单个查询语句。或者如果我可以用相当于“任何”的东西替换空字符串???
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-3 linq entity-framework-4