I have a view which I want to change its data by changing a DropDownList. Everything works fine but the View doesn't render with new set of data. In other word when I post data to an action method in controller it cannot return to view. here is my code:
View:
@model IEnumerable<Model.Params>
<table>
@foreach(var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
</tr>
}
</table>
<div>
@(Html.Kendo().DropDownList()
.Name("datetime")
.DataTextField("DateText")
.DataValueField("DateText")
.Events(e => e.Change("datesChange"))
.DataSource(ds => ds.Read("Read_Intervals", "MyController"))
)
</div>
<script>
function datesChange() {
var value = $("#datetime").val();
$.post("@Url.Action("Kq_Read", "MyController")" + "?date=" + value);
}
</script>
Controller:
public ActionResult Kq(string date)
{
IQueryable<Params> kq;
if (date != null)
{
var datetime = Convert.ToDateTime(date);
kq = db.Params.Where(p => p.LogDate == datetime);
}
else
{
var datetime = GetLatestInterval();
kq = db.Params.Where(p => p.LogDate == datetime);
}
return View("Kq", kq);
}
[HttpPost]
public ActionResult Kq_Read(string date)
{
var datetime = Convert.ToDateTime(date);
var kq = db.Params.Where(p => p.LogDate == datetime);
return View("Kq", kq);
}