我有一个链接可以在新窗口中打开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函数,允许用户选择日期。如何将该日期选择传递给我的控制器?这是我到目前为止,它返回一个null 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){...}
有什么想法吗?提前谢谢......
答案 0 :(得分:0)
您有两种可能性:
在包含#DatePicker
字段的表单中使用提交按钮。这样您就不需要传递任何内容,当提交表单时,所有输入值都将自动发送到服务器:
@using (Html.BeginForm("SomeAction", "Home"))
{
@Html.TextBoxFor(x => x.DatePicker)
<input type="submit" value="Click Me" />
}
如果要使用锚点,则需要使用javascript将datepicker的值附加到查询字符串。因此,在单击链接时触发的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请求之间存在的差异。有关更多信息,请参阅following article。
答案 1 :(得分:-1)
您也可以使用FormCollection。
查看
@using (Html.BeginForm("SomeAction", "Home"))
{
<input type="text" id="DatePicker" name="date">
}
CONTROLLER
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});
}