基本上,我正在尝试在我的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吗? - 我需要为Partial View创建一个ViewModel吗?
谢谢
VISHAL的第二次编辑:
这根本没有起作用,甚至没有警报,因为奇怪的是,它无法识别日历...
$("#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。