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>
在我的Home控制器的动作结果中,我有这个
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。
谢谢
您对HTML输入字段具有只读权限。这些字段不会发布到服务器,它是设计使然。尝试删除readonly属性,它应该可以工作
编辑:看来我在这个问题上是错的。只读字段实际上是传递给服务器的,禁用字段不是。在您的情况下,问题是缺少名称属性。如果您禁用了输入字段,我的回答将是正确的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句