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