C# ASP.NET foreach不显示项目
当我在DateTimePicker中选择Date时,它调用的是公共ActionResult IndexDateTime?测验它会将一些项目返回到视图中,但这些项目不会出现在索引中。这似乎不起作用,我不确定为什么:C# ASP.NET foreach不显示项目,c#,asp.net,C#,Asp.net,当我在DateTimePicker中选择Date时,它调用的是公共ActionResult IndexDateTime?测验它会将一些项目返回到视图中,但这些项目不会出现在索引中。这似乎不起作用,我不确定为什么: <h1>Items</h1> @foreach (var item in Model) { <br />@item.Date } 控制器: public class HomeController : Controller { //
<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请求应该具有某种回调函数来处理返回的响应:
$.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);
这只是一个例子,当然需要一个您可以识别的元素来保存响应。你可以用这个反应做很多其他的事情
然而,需要注意的一点是,您的响应似乎是整个页面。它包括脚本标记、CSS的链接标记以及客户机上已有的各种标记。因此,将整个页面放在一个元素中是行不通的
您可能只想返回此AJAX响应的部分视图。或者,不使用AJAX,只需导航到操作即可获取整个页面。首先向视图发送一个空列表:
List<Table> temp = new List<Table>();
return View(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);
这只是一个例子,当然需要一个您可以识别的元素来保存响应。你可以用这个反应做很多其他的事情
然而,需要注意的一点是,您的响应似乎是整个页面。它包括脚本标记、CSS的链接标记以及客户机上已有的各种标记。因此,将整个页面放在一个元素中是行不通的
您可能只想返回此AJAX响应的部分视图。或者,不使用AJAX,只需导航到操作即可获得整个页面。我认为AJAX在IndexDateTime调用公共ActionResult?测试,这些数据应该出现在索引上。如果我只使用ajax,我应该如何从EntityFramework获取数据?@A191919:ajax正在调用该操作。但你没有对那个请求的结果做任何事。服务器端代码无法修改已发送到浏览器的页面。要做到这一点,您必须编写客户端代码。我认为Ajax调用公共ActionResult IndexDateTime?测试,这些数据应该出现在索引上。如果我只使用ajax,我应该如何从EntityFramework获取数据?@A191919:ajax正在调用该操作。但你没有对那个请求的结果做任何事。服务器端代码无法修改已发送到浏览器的页面。要做到这一点,您必须编写客户端代码。