我在mvc controller
中绑定了selectlist中的数据这是我的代码
var getYear = db.yearMaster.OrderBy(y => y.Year).ToList();
SelectList yearList = new SelectList(getYear, "YearID", "Year");
ViewBag.YearListName = yearList;
这是我的观点
@using (Html.BeginForm("FilterImage", "Glimpses", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.DropDownList("YearList", ViewBag.YearListName as SelectList, "Select Year")
}
现在,当我从FormMethod.Post方法提交数据时,我想传递与所选项目相关的datavaluefield。
让我们更清楚,
年份中有3项为ex:
value itemname
1 2011-2012
2 2012-2013
3 2013-2014
现在,当我选择当时的2011-2012时,我想要那个值,即1.我希望将该值存储在@Html.Hidden();
类型中。
谢谢。
答案 0 :(得分:0)
您的代码将呈现一个SELECT name
属性值设置为YearList
的SELECT元素。这意味着当您提交表单时,所选的选项值将可用于表单项键YearList
。因此,如果您在操作方法中使用具有相同名称的参数,您将获得该值。
[HttpPost]
public ActionResult FilterImage(int yearList)
{
// You have the value in yearList param now
// to do : return something
}
现在,当我选择当时的2011-2012时,我想要的是那个值,即1。 我想将该值存储在@ Html.Hidden()中;输入
这没有任何意义。 @Html.Hidden()
是一种渲染隐藏输入元素的辅助方法。你调用一个方法获取某些东西,你不能将某些值存储到方法中!
如果您尝试将下拉列表的选定值设置为隐藏元素,则应使用javascript执行此操作。以下是使用jQuery val()
方法的示例。
$(function(){
$("#YearList").change(function(){
$("#yearID").val($(this).val());
alert("The value of yearID input is "+ $("#yearID").val());
});
});
此代码会将所选选项值设置为页面中ID为yearID
的输入元素。