我如何传递表单的值,这是(我假设)一个日期字符串给控制器......
这是我的观点:
<script type="text/javascript" language="javascript">
$(function () {
$(".datepicker").datepicker({ onSelect: function (dateText, inst) { $("FORM").submit(); },
altField: ".alternate"
});
});
</script>
@model IEnumerable<CorReservation.Models.Reservation>
@{
ViewBag.Title = "Index";
}
<div class="divRightSide">
<div>
<div class="datepicker">
</div>
<form action="/" title="fff">
<input type="text" class="alternate" readonly="readonly" />
</form>
</div>
// do something eg. foreach (var item in Model)
{ @Html.DisplayFor(modelItem => item.Date)}
这是我的控制器:我想将从datepicker中选择的日期传递给控制器,然后控制器将返回一个不可预知的保留...
DateTime date = System.DateTime.Now;
private ReservationEntities db = new ReservationEntities();
public ViewResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(string dateInput)
{
date = Convert.ToDateTime(dateInput);
var reservations = db.Reservations.Where(r=> r.Date ==date).Include(r => r.Employee).Include(r => r.Room).OrderByDescending(r => r.Date);
return View(reservations);
}
答案 0 :(得分:0)
有两种方法可以做到这一点。使表单输入名称属性与控制器中的预期属性匹配。
例如:
<input type="text" class="alternate" readonly="readonly" name="dateInput" />
或者如果有很多输入值,请使用模型。
答案 1 :(得分:0)
它会根据您要提交的HTML字段的“名称”属性自动完成。
将表单更改为
<form action="/" title="fff">
<input name="dateInput" type="text" class="alternate" readonly="readonly" />
</form>
它应该就是这样。
另外,当您使用Razor语法时,您可以像这样使用Razor HTML帮助器
@model IEnumerable<CorReservation.Models.Reservation>
@{
ViewBag.Title = "Index";
}
<div class="divRightSide">
<div>
<div class="datepicker">
</div>
@using(@Html.BeginForm("<your controller name>", "<your action name e.g. Index>"){
Html.TextBox("dateInput", "", new { @readonly="readonly", @class="alternate" })
}
</div>
// do something eg. foreach (var item in Model)
{ @Html.DisplayFor(modelItem => item.Date)}