0

4 つのテキスト ボックス (ID、batchID、EmployeeNumber、RefNumber) を持つ検索ページがあり、すべて数字です。これらの値のいずれかをコントローラーに送信するためにクエリ文字列を使用したくありません。だから私は以下のような Form.Post メソッドを使用しています:

@using (Html.BeginForm("詳細", "検索", FormMethod.Post, new { @id = Model.id }))

しかし、私はそれをグローバルにしたいので、ユーザーが検索に使用するテキストボックスに基づいて、その値をコントローラーに送信する必要があり、可能であればタイプも(IDまたはbatchIDなどを入力したように)それに応じてデータベースを検索するのは簡単です。誰か助けてください。

参考までに: 私のルートは global.asax で次のようになります

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

私は実際に、すべての条件チェックを行う JavaScript メソッドから値を送信することを考えています。

4

1 に答える 1

0

ビューモデルを定義できます:

public class SearchViewModel
{
    public int? Id { get; set; }
    public int? BatchID { get; set; }
    public int? EmployeeNumber { get; set; }
    public int? RefNumber { get; set; }
}

次に、このビューモデルをパラメーターとして受け取るように投稿しているコントローラーアクションを用意すると、ユーザーがテキストボックスに入力した値を取得できるようになります。

[HttpPost]
public ActionResult Details(SearchViewModel model)
{
    if (!ModelState.IsValid)
    {
        return View(model);
    }

    if (model.Id != null)
    {
        // the user entered something into the textbox containing the id
    }

    if (model.BatchId != null)
    {
        // the user entered something into the textbox containing the batch id
    }

    ...
}
于 2013-03-01T15:51:44.373 に答える