我第一次在工作项目中使用ASP.NET MVC 2,感觉有点像菜鸟。
我有一个包含客户搜索控件/部分视图的页面。控件是一个文本框和一个按钮。您在文本框中输入客户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
答案 0 :(得分:1)
一个好的起点可能是NerdDinner,如果你还没有。
同时我使用的方法是让一个页面上有我的搜索框。
然后我有一个名为“SearchResults”的<div>
。这最终会将我的结果保留在搜索中。
然后我有一个PartialView,它采用包含所有搜索结果并呈现它们的模型。
因此,当我单击按钮时,我会调出一个带有搜索参数的jQuery操作,执行搜索,然后将我的PartialView作为呈现的HTML返回。
回到客户端,我接受渲染的HTML并用HTML替换div的内容。
google或SO的关键字是RenderPartial。这是后端代码,用于呈现部分视图并为您提供html。
还有jQuery回发,以便您可以在控制器中调用操作。
答案 1 :(得分:1)
使用RedirectToRoute操作结果
link