这是我的代码在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
有几种方法。最简单的方法之一是拥有一个 ViewModel,其中包含要在下拉列表中呈现的 SelectListItems 集合和一个用于选择的项目。在下面的示例代码中,我当然使用硬编码值等来演示这一点!
视图模型
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 回答