public JsonResult SearchApplicantList(string SSession, string ApStatus, string StudyLevel, string SLPrograms)
{
ab db = new ab();
var SearchList = db.Students
.Where(x => x.SemesterSessioin == SSession
&& x.OverAllStatus == ApStatus
&& x.StudyLvl == StudyLevel
&& x.ProgPref1 == SLPrograms
&& x.ProgPref2 == SLPrograms
&& x.ProgPref3 == SLPrograms
&& x.progPref4 == SLPrograms).ToList();
return Json(SearchList, JsonRequestBehavior.AllowGet);
}
我想根據引數得到一個串列,但很少有很多引數可以為空,空意味著全部。
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
編程。一步步。
讓我解釋:
查詢不需要只有一行。
var searchQuery = db.Students (possibly with .Where that is constant).
if (ApStatus != null) {
searchQuery = searchQuery.Where(x => x.OverAllStatus = ApStatus
}
順便說一句,大量的拼寫。它是應用程式(不是應用程式),總體不是整體 - 根據字典,它是一個詞。
無論如何,您可以根據需要重復添加 where 條件,然后在最后實作。
所有 where 條件都用 AND 運算在一起。
這是大多數人忽略的一件事 - LINQ 允許對查詢樹進行大量編程和操作。
uj5u.com熱心網友回復:
按不能為空的引數應用過濾器,例如 SSession 和 StudyLevel 是不能為空的引數。所以首先應用過濾器
var SearchList = db.Students.Where(x => x.SemesterSessioin == SSession && x.StudyLvl == StudyLevel).ToList();
然后一一檢查其余引數,SLPrograms 將如下所示:
if(!string.IsNullOrEmpty(SLPrograms))
{
SearchList = SearchList.Where(Apply Filter By SLPrograms).ToList();
}
然后是其余的引數。請記住,使用 if 和 if 來檢查每個引數。喜歡
if(Param1)
{
//Code
}
if(Param2)
{
//Code
}
uj5u.com熱心網友回復:
public JsonResult SearchApplicantList(string SSession, string ApStatus, string StudyLevel, string SLPrograms)
{
ab db = new ab();
var SearchList = db.Students;
SearchList = SearchList.Where(x => (x.SemesterSessioin == SSession || SSession ==null)
&& (x.OverAllStatus == ApStatus || ApStatus ==null)
&& (x.StudyLvl == StudyLevel || StudyLevel ==null)
&& (x.ProgPref1 == SLPrograms || SLPrograms ==null)
&& (x.ProgPref2 == SLPrograms || SLPrograms ==null)
&& (x.ProgPref3 == SLPrograms || SLPrograms ==null)
&& (x.progPref4 == SLPrograms|| SLPrograms == null).ToList();
return Json(SearchList, JsonRequestBehavior.AllowGet);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/347481.html
標籤:C# asp.net-mvc
