我在我的asp.net mvc的觀點如下形式:通過搜索查詢字符串在asp.net mvc的
<%using (Html.BeginForm("SearchBorrowed", "Admin", FormMethod.Get))
{ %>
<%: Html.TextBox("searchTerm", Request.QueryString["searchterm"])%>
<input type="submit" value="Search" />
<br />
Is Returned :
<%:Html.CheckBox("IsReturned")%>
<%} %>
這裏是 'SearchBorrowed' 行動:
public ActionResult SearchBorrowed(bool IsReturned=false, string searchTerm = null)
{
IEnumerable<BorrwoinfInfo> bs;
//...Get from repository
return View(bs.ToList());
}
和最後路由設置:
routes.MapRoute(
"SearchBorrowed", // Route name
"{controller}/{action}/{*searchTerm}", // URL with parameters
new
{
controller = "Admin",
action = "SearchBorrowed",
searchTerm = UrlParameter.Optional
} // Parameter defaults
當我提交表單,不檢查「IsReturned」複選框, 返回resul t和URL獲取如下:
.../SearchBorrowed搜索關鍵詞= & IsReturned =假
但是當我檢查IsReturned」複選框,網址得到這樣的:?
.../SearchBorrowed?searchterm = s & IsReturned = true & IsReturned = false
爲什麼在上面的url中有兩個IsReturned?
我該如何解決這個問題?
我會推薦使用強類型模型。 – 2012-01-03 16:16:34
這是一個視圖內的搜索表單,它將模型設置爲 'IEnumerable',所以我無法將複選框綁定到模型上。 如果我想這樣做,我必須使用ViewModel,對嗎? –
2012-01-03 16:35:13