我有一个ddl,其中包含01-23小时的小时数。这是用于预订设备项目的表格。小时将填充到db字段。问题在于,当打开预订表格以改变ddl显示预订小时的时间时,虽然改变了表格并且提交了表格,但是发布的值是db的初始值而不是新选择的小时。 / p>
这是基本的代码片段。任何想法为什么新选择的ddl值没有传递给模型??
查看
<%= Html.DropDownList("ddl_Hour", Model.ddlHour,
new { @class = "DropDown", style = "width: 40px” })%>
模型
private string _ddlHourSelectedValue = "0";
public SelectList ddlHour
{
get
{
return (new System.Web.Mvc.SelectList(_ddlHour, "intValue", "Text", Convert.ToInt32(_ddlHourSelectedValue)));
}
}
public string ddlHourSelectedValue
{
get
{
return _ddlHourSelectedValue;
}
set
{
_ddlHourSelectedValue = value;
}
}
param[6] = new SqlParameter("@Timeslot", ddlHourSelectedValue);
答案 0 :(得分:1)
视图中的字段称为“ddl_Hour”但是模型中是否有一个具有相同名称的变量?否则,MVC框架将不会自动填充模型中的值。
你可以采取两种方式。
1
在接受帖子的控制器方法中,您可以将参数:
FormCollection fc添加到方法中。此键值对集合将允许您从帖子数据中的字段中获取结果,如下所示:
string selectedValue = fc["ddl_Hour"];
2
或者您可以修改模型以包含与下拉列表同名的变量,以便自动为您填充。
public string ddl_Hour { get; set; }
然后,您应该能够从该变量的帖子中访问下拉列表选择的结果。