1

HTML.DropDownList で選択したアイテムを返す方法を理解するのが難しいので、送信ボタンを押すと、選択したアイテムのテキストがデータベースで検索されます。ここに私が持っているものがあります:

@{
var selectStaff = "Select LastName + ', ' + FirstName AS Name, StaffID  From StaffList ORDER BY LastName";
var data = db.Query(selectStaff);
var items = data.Select(i => new SelectListItem {
    Text = i.Name
  });
}

そして、htmlで..

@Html.DropDownList("Select1", items)

ドロップダウンリストが表示されて入力されているため、これは正常に機能しますが、送信ボタンを押すと、データベースで選択したアイテムのテキストを検索できるようにしたいと考えています。どうすればこれを行うことができますか?

4

2 に答える 2

1

ドロップダウンをビュー モデルのプロパティにバインドしない場合 (これが望ましい)、Request.Form["Select1"]コントローラー アクションで使用するだけで取得できます。

かみそりのページにいる間に値を取得できるようにする場合は、jQuery (または他の JavaScript) を使用して値を取得する必要があります。

jQuery で値を取得するには:

$(document).ready(function () {
     $("#YourSubmitButtonID").click(function () {
         // Get the value from 'Select1'
         var value = $("#Select1").val();
     });
});

値で何かを行うには、次のような ajax 関数を使用する必要があります。

$.ajax({
    url: '@Url.Action("ActionName", "ControllerName")',
    data: { valueToQuery: $("#Select1").val() },
    success: function (data) {
       // The data is the result
    }
});

この例の ControllerName という名前のコントローラーには、データベースにクエリを実行して結果を返すコードがあります。

public ActionResult ActionName(string valueToQuery)
{
     // Do your stuff here
    return Json("your result", , JsonRequestBehavior.AllowGet);
{
于 2012-06-28T15:08:17.277 に答える