にクエリ文字列で検索:は、私は以下のように私の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
私は「戻される」のチェックボックス、 を確認せずにフォームを送信するとき、それはresulを返します。 ?
.../SearchBorrowed検索語= &戻される= falseを
しかし、私が戻される「のチェックボックスをチェックすると、URLは次のようになる:tとURLは以下のようになります
.../SearchBorrowed?searchterm = s & IsReturned = true & IsReturned = false
上記のURLに2つのIsReturnedがあるのはなぜですか?
どのようにこれを修正できますか?
強く型付けされたモデルの使用をお勧めします。 –
これはモデル内に 'IEnumerable'というモデルを取得するビュー内の検索フォームなので、モデルにチェックボックスをバインドすることはできません。 私がそれをしたいのであれば、ViewModelを使用する必要があります。 –