回发后的MVC ddl值

时间:2012-01-13 15:01:54

标签: model-view-controller ddl

我有一个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);

1 个答案:

答案 0 :(得分:1)

视图中的字段称为“ddl_Hour”但是模型中是否有一个具有相同名称的变量?否则,MVC框架将不会自动填充模型中的值。

你可以采取两种方式。

1

在接受帖子的控制器方法中,您可以将参数:

FormCollection fc
添加到方法中。此键值对集合将允许您从帖子数据中的字段中获取结果,如下所示:

string selectedValue = fc["ddl_Hour"];

2

或者您可以修改模型以包含与下拉列表同名的变量,以便自动为您填充。

public string ddl_Hour { get; set; }

然后,您应该能够从该变量的帖子中访问下拉列表选择的结果。