2016-06-22 27 views
-1

下面的代碼多個字段過濾的搜索是我在我的Index.cs使用ASP.NET

<p> 
@using (Html.BeginForm("Index", "Home", FormMethod.Get)) 
{ 
    <b>Search By:</b> 
    @Html.TextBox("progcd") <text>PROGCD</text> 
    @Html.TextBox("docrecdt") <text>DOCRECDT</text> 
    <input type="submit" value="Search" /> 
} 
</p> 

而且在我家控制器

public ActionResult Index(string progcd, string docrecdt) 
     { 

      if (docrecdt == "docrecdt") 
      { 
       return View(db.vwtest21.Where(x => x.DOC_REC_DT1 == docrecdt).ToList()); 
      }   
      else if (progcd == "progcd") 
      { 
       return View(db.vwtest21.Where(x => x.PROG_CD == progcd).ToList()); 
      } 
      else 
      { 
       return View(db.vwtest21.Where(x => x.DOC_REC_DT1 == docrecdt && x.PROG_CD == progcd).ToList()); 
      }   
     }  
    } 

返回唯一的觀點是兩個字段必須匹配的最後一個字段。如果我只放一個字段,我試圖滿足「if」或「else if」語句,它不起作用。我怎樣才能調整我的代碼,使它能夠用於所有三種語句?

回答

0

您可以使用||條件像

 if (docrecdt.ToLower() == "docrecdt" || progcd.ToLower() == "progcd") 
     { 
      return View(db.vwtest21.Where(x => x.DOC_REC_DT1 == docrecdt || x.PROG_CD == progcd).ToList()); 
     }   
     else 
     { 
      return View(db.vwtest21.Where(x => x.DOC_REC_DT1 == docrecdt && x.PROG_CD == progcd).ToList()); 
     } 
+0

不幸的是,代碼仍然不工作..這個問題在返回查看只能顯示當兩個字段填入仍然存在,結合您的情況。有沒有什麼辦法解決這一問題? – ayton

+0

@ayton,在這種情況下,您的模型綁定器無法綁定操作方法參數本身,因此它將會阻塞。 – Rahul

+0

此外,區分大小寫可能是一個問題。現在檢查編輯並查看。 – Rahul