@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
由于
答案 0 :(得分:0)
您已经只读取了HTML输入字段。这些字段不会发布到服务器,它是设计使然。尝试删除readonly属性,它应该工作
编辑:问题似乎我错了。只读字段实际上传递给服务器,禁用字段不是。在您的情况下,问题是缺少名称属性。如果您禁用了输入字段,我的答案就是正确的。