[英]How do I pass a textbox (DatePicker) variable to my controller using Html.ActionLink?
我有一个链接,可在不离开页面的情况下在新窗口中打开pdf。 我有这个链接工作...
<script type="text/javascript">
$(function () {
$("#DatePicker").mask("99/99/9999").datepicker({ maxDate: new Date() });
});
if (document.images) {
var pic1 = new Image(100, 200);
pic1.src = '<%=Url.Content("~/images/calendarContent.png") %>'
}
</script>
<%= Html.ActionLink("Click ME", "Controller", "Home", new { id = Model.id }, new { onclick = "stayHomeFunc()"})%></div>
经过审查,我必须添加一个DatePicker函数,该函数允许用户选择一个日期。 如何将日期选择传递给我的控制器? 这就是我到目前为止所拥有的,顺便说一句,它返回一个空的startDate ...
Enter Date:<input name="DatePicker" id="DatePicker" type="text" style="width: 80px" />
<%= Html.ActionLink("Click ME", "Controller", "Home", new { id = Model.id, startDate = DatePicker }, new { onclick = "stayHomeFunc()"})%></div>
public ActionResult COntroller(string id, string startDate){...}
有任何想法吗? 提前致谢...
您有2种可能性:
在包含#DatePicker
字段的表单内使用提交按钮。 这样,您无需传递任何内容,提交表单后,所有输入值将自动发送到服务器:
@using (Html.BeginForm("SomeAction", "Home")) { @Html.TextBoxFor(x => x.DatePicker) <input type="submit" value="Click Me" /> }
如果要使用锚,则需要使用javascript才能将datepicker的值附加到查询字符串。 因此,在您的stayHomeFunc
函数内部, stayHomeFunc
函数在单击链接时触发:
function stayHomeFunc(link) { var date = $('#DatePicker').datepicker('getDate'); var formattedDate = $.datepicker.formatDate('yy-mm-dd', date); link.href += '?DatePicker=' + formattedDate; }
然后不要忘记将锚点实例传递给onclick事件:
<%= Html.ActionLink( "Click ME", "SomeAction", "Home", new { id = Model.id }, new { onclick = "stayHomeFunc(this)"} ) %>
就个人而言,我会选择第一个选项,因为它在语义上更正确,并且不需要任何JavaScript。
还应注意模型绑定程序使用的DateTime格式以及GET和POST请求之间存在的差异。 有关更多信息,请参阅以下文章 。
您也可以使用FormCollection。
视图
@using (Html.BeginForm("SomeAction", "Home"))
{
<input type="text" id="DatePicker" name="date">
}
控制器
public ActionResult SomeAction( FormCollection form)
{
var date = form["date"];
if (date != String.Empty)
{
MyModel model = new MyModel();
model.date= DateTime.Parse(date);
}
return RedirectToAction("YourNewAction", new {date = model.date});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.