2011-11-18 88 views
0

我想在Asp.net MVC Razor中實現搜索功能。我發現奇怪的是在搜索texbox中檢索值(雖然我想要這個,但是想知道發生了什麼)。如何保存表單中搜索文本框的值

以下是HTML代碼: -

   @using (Html.BeginForm("Search", "Home", FormMethod.Get)) 
       { 
        @Html.TextBox("query") 
        <input type="submit" value="Submit" /> 
       } 

這裏是控制器的代碼: -

public ActionResult Search(string query, int? page) 
    { 
     int pageIndex = page ?? 1; 
     ViewBag.query = query; 
     PagedList.IPagedList<Product> PagedProducts = dbStore.Products.Where(p => p.Name.Contains(query)).ToList().ToPagedList(pageIndex, PageSize); 
     return View(PagedProducts); 
    } 

: - 上述HTML代碼駐留在共享_Layout.cshtml即母版文件

回答

1

有關ModelState的MSDN文章很簡短,至少可以說,但它的ModelState即respons爲此而努力。

一旦對@Html.BeginForm()進行處理,則控件由當前模型的ModelState的值填充(如果適用)。

您可以通過在您的操作方法中調用ModelState.Clear()來覆蓋此行爲(並強制清除文本框)。

+0

我無法理解這一點。在其他例子中,我已經看到使用回發的表單,這不會發生。 –

+0

此外,我試過這個,但仍然出現在搜索文本框中的文字 –

+0

這與我的知識相矛盾。你能否提供一份工作樣本來說明你的情況? – Zruty

相關問題