1

私のAsp.NetMVC4のインデックスビューには、次のコードがあります。

<form action="/Deal" method="GET">
    <p>
        @Html.ActionLink("Create New", "Create")
        <input type="text" name="search"/>
        <input type="submit" value="Search" />
    </p>
</form>

そして、DealControllerの次のコード。ただし、HTML検索入力はポストバック後に空になります。入力ボックスに入力した検索文字列を表示して、ユーザーが引き続き変更できるようにするための最良の方法は何ですか?

public ActionResult Index(string search)
{
    var deals = Deals.Include(d => d.Address);
    if (search != null)
        deals =
            deals.Where(d => d.Address.ApartmentNum.Contains(search) 
                             || d.Address.StreetAddress.Contains(search)
                             || d.Address.City.Contains(search) 
                             || d.Address.State == search 
                             || d.Address.Zip == search);
    return View(deals.ToList());
}
4

2 に答える 2

2

おそらく最善ではないかもしれませんが、より簡単な方法の 1 つです。

 <form action="/Deal" method="GET">
     <p>
         @Html.ActionLink("Create New", "Create")
         <input type="text" name="search" value= "@((string)ViewBag.Search)" />
         <input type="submit" value="Search" />
     </p> 
</form>

public ActionResult Index(string search)
{
    var deals = Deals.Include(d => d.Address);
    if (search != null)
        deals =
            deals.Where(d => d.Address.ApartmentNum.Contains(search) 
                             || d.Address.StreetAddress.Contains(search)
                             || d.Address.City.Contains(search) 
                             || d.Address.State == search 
                             || d.Address.Zip == search);
    ViewBag.Search = search;
    return View(deals.ToList());
}
于 2013-03-17T04:58:18.603 に答える
1

古い方法を使用する必要があることがわかりました

<input type="text" name="search" value="@Request.QueryString["search"]"/>
于 2013-03-17T06:17:14.070 に答える