2017-07-25 88 views
0

我使用asp.net mvc5並試圖在我的表上方添加一個文本框來搜索表中的項目。在我看來,我有爲什麼我的搜索框不會返回任何結果?

@using (Html.BeginForm()) 
{ 
    <p> 
     Find by Start/End Point @Html.TextBox("SearchString") 
     <input type="submit" value="Search" /> 
    </p> 
} 

然後在我的控制器

public ActionResult Index(string sortOrder, string searchString) 
{ 
    var lift = from l in db.Lifts select l; 
    if (!String.IsNullOrEmpty(searchString)) 
    { 
     lift = lift.Where(l => l.StartPoint.Contains(searchString) 
           || l.EndPoint.Contains(searchString)); 
    } 
     return View(lifts.ToList()); 
    } 
} 

但是它每次都返回同一個表。這可能是一件愚蠢的事我做錯了,但我看不到。

+1

你嘗試在你的控制器一個破發點,並檢查從每''不同你searchString'越來越預期的結果db'? –

+1

你檢查過中斷點嗎?是你的代碼擊中控制器? –

+0

你有沒有嘗試斷點檢查。 Searchstring需要有一個有效的值。 – Amit

回答

0

嘗試使用這樣的:

@using (Html.BeginForm("Index","ControllerName",new { sortOrder = "Desc/Asc" },FormMethod.Post)) 
        { 
         <p> 
         Find by Start/End Point @Html.TextBox("SearchString") 
          <input type="submit" value="Search" /></p> 
        } 

行爲代碼: -

public ActionResult Index(string sortOrder, string SearchString) 
     { 
      var lift = from l in db.Lifts select l; 
      if (!String.IsNullOrEmpty(SearchString)) 
      { 
       lift = lift.Where(l => l.StartPoint.Contains(SearchString) 
             || l.EndPoint.Contains(SearchString)); 
      } 
      return View(lifts.ToList()); 
      } 
     } 
+0

用你的實際控制器名稱更改'ControllerName'並在'sortOrder'中傳遞'Desc'或'Asc' –

+0

控制器中的「searchString」應該以大寫S還是小S開頭? –

+0

它將成爲大寫S –

相關問題