我创建了一个工作 MVC 页面,它带回了一组显示特定报告的数据(按支出金额排列的顶级客户)。我正在尝试添加两个 jQuery datepicker 文本框,允许用户通过开始和结束日期绑定该报告。它目前正在工作,因为我有一个绑定了 jQuery click 事件的 HTML 锚标记,它启动了一个处理程序。处理程序将开始/结束日期扔给我的控制器中的 HttpPost ActionResult 方法,并获取更新的数据集。
问题是当我尝试将数据返回到视图(而不是返回 Content("true"))时,没有返回任何数据,并且处理程序给了我我的 OnFailure 消息。是否可以通过这种方式将数据传递给视图,或者我是否需要使用 Html.BeginForm 类型的方法重新编写它?
非常感谢!
这是代码:(在我看来)
<script type="text/javascript">
$(document).ready(function () {
$(".datepicker").datepicker();
$('#submit').click(function () {
SetDateHandler($('#startdate').val(), $('#enddate').val(), "company");
});
function SetDateHandler(bounddate1, bounddate2, datetype) {
$.ajax({
//url: '/Projects/TestArray',
url: '@Url.RouteUrl("SetBoundingDate")',
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: OnComplete,
data: JSON.stringify({ startdate: bounddate1, enddate:bounddate2, type: datetype }),
traditional: true,
type: "POST",
error: OnFail
});
return false;
}
function OnComplete(result) {
//indow.location.href = window.location.href;
alert("yay!");
return true;
}
function OnFail(result) {
alert('Request Failed');
return false;
}
});
</script>
<h2>Top Companies by Total Price for Won Quotes</h2>
<div style="float:right; width: 350px; margin: 15px;">
<span style="float:right; margin-right: 50px;">Start Date: <input class="datepicker" id="startdate" /></span>
<br />
<span style="float:right; margin-right: 50px;">End Date: <input class="datepicker" id="enddate" /></span>
<br />
<a href="#" id="submit">Submit</a>
</div>
自定义路由:routes.MapRoute(name: "SetBoundingDate", url: "AjaxSetBoundingDate", 默认值: new { controller = "Reports", action = "SetBoundingDates" } );
在我的报告控制器中:
[HttpPost]
public ActionResult SetBoundingDates(String startdate, String enddate, String type)
{
Schedule.Models.Reports.TopCompaniesModel Companies = new Models.Reports.TopCompaniesModel();
ActionResult view;
if (type == "company")
{
view = TopCompaniesReport(startdate, enddate);
}
else
{
view = TopContactsReport(startdate, enddate);
}
//return View(view);
return Content("true");
}
再一次,如果你已经读到这里,我会在正确填充视图的情况下到达我的 Controller 方法的底部,但是当我尝试返回 View 时,它会出错,如果我返回 Content(“true”),它可以工作但什么也没有页面上的变化。
谢谢!