0

これは私のコードですデータベースからasp.net MVC3のDropDownListにデータを表示しますこれで、データベースからドロップダウンリストに データを表示できるようになりましたが、ドロップダウンリストデータから何かを選択した場合、選択した値がストアドプロシージャに渡されるようにしたい. 同じ質問が利用可能であるか、すでに尋ねられている可能性があることは知っていますが、希望する回答が得られません。誰かが私を段階的に説明したり、有用なリンクを提供したりできれば.

4

3 に答える 3

1

このコードは完全にはテストおよび実装されていません。

onchangeのイベントを使用して達成できますdropdownlist

@Html.DropDownListFor(x => x.SelectedItemValue,new {@onchange="passvalue(this);"})

JavaScript と ajax を使用して処理する

<script type="text/javascript">
  function passvalue(e){
      $.ajax({
         type: 'POST',
         dataType: 'json',
         url: '@Url.Action("Index", "Home")',
         data: ({ selectedValue: e.innerHTML }),
         success: function (result) {
                                    },
         error: function (result) {
                    alert('error');
                }
      });
  }
  </script>

これで、選択した値をコントローラーに取得できます

[HttpPost]
public ActionResult Index(int selectedValue)
{
   // do whatever you want with `selectedValue`
}

それが役に立てば幸い

于 2013-01-30T10:44:43.250 に答える
0

いくつかのアプローチがあります。最も簡単な方法の 1 つは、ドロップダウンでレンダリングする SelectListItems のコレクションと、選択を取得する項目を持つ ViewModel を用意することです。もちろん、以下のサンプルコードでは、ハードコードされた値などを使用してポイントをデモしています!

ビューモデル

public class TestViewModel
{
    public IEnumerable<SelectListItem> TestListItems
    {
        get
        {
            return new List<SelectListItem>
            {
                new SelectListItem { Text = "Item 1", Value = "1" },
                new SelectListItem { Text = "Item 1", Value = "1" },
                new SelectListItem { Text = "Item 1", Value = "1" },
            };
        }
    }

    public string SelectedItemValue { get; set; }
}

意見

<p>@Html.DropDownListFor(x => x.SelectedItemValue, new SelectList(Model.TestListItems, "Value", "Text"))</p>

コントローラ

public ActionResult Index()
{
    var viewModel = new TestViewModel();
    return View(viewModel);
}

[HttpPost]
public ActionResult Index(TestViewModel viewModel)
{
    string youChose = viewModel.SelectedItemValue;
    // ...
}

また、コレクションを強調表示するために、必ずしもそうである必要はなく、SelectListItem別のタイプである可能性もあります。次に、ビューを変更して a を実行し、.Selectに変換するだけSelectListItemです。簡単にするために、ViewModel で直接使用できるようにしました。

于 2013-01-30T10:14:46.917 に答える
0

これはこれを達成する方法です:

ドロップダウンの変更イベントをサブスクライブし、選択した値をストアド プロシージャに渡すアクション メソッド (たとえばajaxを使用) を呼び出します。

于 2013-01-30T10:11:18.093 に答える