2010-03-17 180 views
0

我在工作中首次使用ASP.NET MVC 2,感覺像是一個noob。如何實現在同一頁面上顯示結果的搜索頁面?

我有一個包含客戶搜索控件/局部視圖的頁面。該控件是一個文本框和一個按鈕。您在文本框中輸入客戶ID並點擊搜索。該頁面然後「刷新」並在相同頁面上顯示客戶詳細信息。換言之,客戶詳細信息顯示在客戶搜索控件下方。

這樣,如果客戶不是正確的,用戶可以再次搜索而不會在瀏覽器中回擊。或者,他們可能錯誤輸入了客戶ID,需要重試。

我想要的網址看起來像這樣:

/Customer/Search/1 

很顯然,這是繼該項目的默認路由。

現在,如果我直接在瀏覽器中輸入上面的URL,它就可以正常工作。但是,當我使用該頁面上的搜索控件搜索客戶2時,該頁面會刷新正確的客戶詳細信息,但URL不會更改!它保持爲

/Customer/Search/1 

當我想這是

/Customer/Search/2 

我怎樣才能得到它更改爲正確的網址是什麼?

我只在Global.asax中使用默認路由。

我的搜索方法是這樣的:如果你沒有帶已經

<AcceptVerbs(HttpVerbs.Get)> _ 
Function Search(ByVal id As String) As ActionResult 
    Dim customer As Customer = New CustomerRepository().GetById(id) 

    Return View("SearchResult", customer) 
End Function 

回答

1

一個良好的開端可能的NerdDinner。

同時,雖然我會使用的方法是有一個頁面,其上有我的搜索框。

然後我會有一個<div>,我叫「SearchResults」。這最終會將我的結果保存到搜索中。

然後我有一個PartialView,它採用一個模型,它包含所有搜索結果並呈現它們。

所以當我點擊按鈕時,我會調用一個採用搜索參數的jQuery動作,執行搜索,然後將PartialView作爲呈現的HTML返回。

回到客戶端,我將呈現的HTML取代HTML中的內容。

谷歌或SO的關鍵詞是RenderPartial。這是後端代碼來呈現部分視圖併爲您提供html。

此外jQuery回發,以便您可以在您的控制器中調用一個操作。

1

使用RedirectToRoute作用的結果
link

+0

謝謝您的回答。但是,我無法確定我應該使用RedirectToRoute。你能提供一個例子嗎? – Andrew 2010-03-18 00:17:22

+0

@Andrew,如果你不明白RedirectToRoute在哪裏,你應該從頭再來。 – jfar 2010-03-18 03:59:15

+0

@jfar - 我理解如何在基本術語中使用RedirectToRoute。事實上,我之前使用過它們。但是,在這種情況下,我無法看到我會在哪裏使用它。一個例子會真正幫助我理解在這種情況下我會在哪裏使用它。 – Andrew 2010-03-18 05:04:12

相關問題