当我在DateTimePicker中选择Date时,它正在调用public ActionResult Index(DateTime? test)
。它将某些项目返回到视图中,但这些项目未出现在Index上。看来这行不通,而且我不确定原因:
<h1>Items</h1>
@foreach (var item in Model)
{
<br />@item.Date
}
控制器:
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
List<Table> temp = new List<Table>();
return View(temp);
}
[HttpPost]
public ActionResult Index(DateTime? test)
{
masterEntities m = new masterEntities();
List<Table> temp = m.Table.Where(key => key.Date == test).Select(key => key).ToList();
return View(temp);
}
}
Index.cshtml:
@model IEnumerable<DatePicker.Models.Table>
@{
ViewBag.Title = "Index";
}
<script src="~/Scripts/jquery-2.2.0.min.js"></script>
<script src="~/Scripts/moment.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
<script src="~/Scripts/bootstrap-datetimepicker.min.js"></script>
<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
<link href="~/Content/bootstrap-datetimepicker.min.css" rel="stylesheet" />
<div class="container">
<div class="row">
<div class='col-sm-6'>
<div class="form-group">
<div class='input-group date' id='datetimepicker1'>
<input type='text' class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
<script type="text/javascript">
$('#datetimepicker1').datetimepicker({ useCurrent: false });
$('#datetimepicker1').on("dp.hide", function (e) {
//var temp = $('#datetimepicker1').data('DateTimePicker').date().format('YYYY-MM-DD HH:mm')
$.ajax({
url: "/Home/Index",
type: "POST",
data: { test: $('#datetimepicker1').data('DateTimePicker').date().format('YYYY-MM-DD HH:mm') },
//data: {test: temp },
});
});
</script>
</div>
</div>
<h1>Items</h1>
@foreach (var item in Model)
{
<br />@item.Date
}
首先,您向视图发送一个空列表:
List<Table> temp = new List<Table>();
return View(temp);
因此,该循环不显示任何内容,因为没有内容可显示。这是一个空清单。
然后,您发出AJAX请求以获取物品:
$.ajax({
url: "/Home/Index",
type: "POST",
data: { test: $('#datetimepicker1').data('DateTimePicker').date().format('YYYY-MM-DD HH:mm') },
//data: {test: temp },
});
但是您不会对这些项目做任何事情。您基本上会忽略AJAX请求的响应。
因此...数据不会显示,因为您没有编写任何代码来显示数据。AJAX请求应该具有某种回调函数,以对返回的响应进行处理:
$.ajax({
url: "/Home/Index",
type: "POST",
data: { test: $('#datetimepicker1').data('DateTimePicker').date().format('YYYY-MM-DD HH:mm') },
//data: {test: temp },
success: function (data) {
// do something with the response here
}
});
你怎么做的响应了是你的。是JSON吗?HTML?基于服务器端代码,它看起来像是HTML。因此,您可以将其放在页面上的元素中。可能是这样的:
$('#someElement').html(data);
那只是一个例子,当然需要一个可以识别的元素来保存响应。您可以在响应中做很多其他事情。
但是要注意的一件事是,您的回复似乎是整个页面。它包括script
标记,link
CSS标记以及客户端上可能已经拥有的各种标记。因此,将整个页面放入一个元素将无法正常工作。
您可能只想返回此AJAX响应的部分视图。或者,否则,根本不用AJAX,只需导航到操作即可获得整个页面。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句