从视图中获取控制器中的formcollection数据

时间:2014-06-23 18:49:51

标签: asp.net-mvc-4

对于MVC来说很新,也许我在这里做错了。所以我有一个观点

@Scripts.Render("~/bundles/jquery")


@using (Html.BeginForm())
{

    <div>
        <label>Start Date : </label>
        <input readonly="true" type="text" id="startDate" style="Width:150px" />
        <br />
        <label>End Date : </label>
        <input type="text" id="endDate" readonly="true" style="Width:150px" />
        <br />
        <button>Submit</button>
        <br />
    </div>

}

<script type="text/javascript">
    jQuery(function () {
        jQuery('#startDate').datepicker();
        jQuery('#endDate').datepicker();
    });
</script>

并且在我的家庭控制器的动作结果中我有这个

 public ActionResult Reports()
        {

            return this.View();
        }


    [HttpPost]
    public ActionResult Reports(FormCollection form)
    {

        DateTime start = Convert.ToDateTime(form["startDate"].ToString());
        DateTime end = Convert.ToDateTime(form["endDate"].ToString());
        //Something with dates

    }

问题是FormsCollection只是空的。所以没有数据从视图传到控制器。我看过这样的在线示例就像这样工作。我有一些配置我缺少或者我需要做的其他事情来获取FormsCollection

由于

1 个答案:

答案 0 :(得分:0)

您已经只读取了HTML输入字段。这些字段不会发布到服务器,它是设计使然。尝试删除readonly属性,它应该工作

编辑:问题似乎我错了。只读字段实际上传递给服务器,禁用字段不是。在您的情况下,问题是缺少名称属性。如果您禁用了输入字段,我的答案就是正确的。