【发布时间】:2015-07-27 14:22:01
【问题描述】:
所以基本上我试图在我的 MVC 应用程序中显示一些配置文件数据。 现在,每次我在 Telerik Kendo 日历上点击一个日期,我都可以刷新整个页面并更新我想要的数据。
但是,我不想刷新整体,我只想刷新仅显示选择日期后更新的数据的部分视图。
Index.cshtml
<!--CODE-->
@Html.Partial("_WorkingTimeData")
<!--CODE-->
_WorkingTimeData.cshtml
var workedTime = ViewData["WorkedTimeToday"];
var hoursPerDay = ViewData["HoursPerDayContract"];
<p>You worked @workedTime hours</p>
<p>Hours Per Day (Contract) @hoursPerDay Hours</p>
是的,现在我是 ViewDatas,它可以工作。
这是Index.cshtml中的ajax代码
$.ajax({ url: '/Profile/Index',
dataType: "json",
type: "POST",
data: JSON.stringify(10),
success: function(returl){
alert('It worked');
location.href=returl.Url;
},
error: function(jqXHR,responseText,textStatus){ alert(jqXHR.responseText) } });
控制器
[HttpPost]
public ActionResult Index(string number){
//THINGS TO DO
var redirectUrl = new UrlHelper(Request.RequestContext).Action("Index", "Profile");
return Json(new { Url = redirectUrl });
}
嗯,我对此很陌生,我一直在做我的研究。但是我仍然有一些问题: - 我需要为 _WorkingTimeData 创建一个 post 方法,而不是像我那样创建 Index 吗? - 我需要为局部视图创建一个 ViewModel 吗?
谢谢
为 VISHAL 编辑 2 号:
这根本不起作用,甚至没有警报,因为奇怪的是,它不识别日历......
$("#calendar").kendoCalendar({
change : function() {
$.ajax({
url: "/Profile/WorkingTimeData",
type: "get"
}).done(function(data) {
$("#profile-timeline").html(data);
});
}});
它说 $("#calendar").kendoCalendar 不是函数(Telerik 说是这样)
至于这个,它到达了控制器但没有更新任何东西:
function change() {
alert("Escolheste outro dia");
var calendar = $("#calendar").data("kendoCalendar");
var current = calendar.current();
alert(current);
$.ajax({
url: "/Profile/WorkingTimeData",
type: "get"
}).done(function(data) {
$("#profile-timeline").html(data);
});
}
我认为这是因为配置文件时间线...在我看来这是一个 div
【问题讨论】:
-
你只是想刷新剑道控件还是整个视图?
-
这些都不是。只是显示工作时间和合同工时的局部视图。
-
@Cajux94:删除 $(document).ready。然后尝试。查看我的编辑。
标签: c# jquery ajax asp.net-mvc