我有一个ASP.NET MVC
视图列表,我在页面加载时用const值初始化
@{
var start = new DateTime(2014, 1, 2, 10, 0, 0);
var end = new DateTime(2014, 1, 2, 14, 30, 0);
}
<div>
@for (DateTime i = start; i < end; i += TimeSpan.FromMinutes(20))
{
<a class="list">
<img src="~/Content/icon-t.png">
@i
</a>
}
</div>
点击DIV
后,我按AJAX
获取数据并创建包含该数据的JavaScript对象。
$.ajax({
type: "GET",
dataType: "json",
url: "/Data/GetData",
success: function (data) {
//creating object with those values
}
});
我正在寻找一种方法将我的新值(start,end
)传递给上面的代码并再次创建列表。
我可以在JS中通过每次使用新值动态构建新列表来实现,但我正在寻找通过发送新值将此责任传递到服务器端的方法。
答案 0 :(得分:0)
我首先为开始/结束创建一个ViewModel。然后使用您拥有的视图中的标记创建局部视图。然后只需将主视图设为占位符...
<div id="myContent">
@Html.Partial("MyPartialView", new StartEndModel { Start = new DateTime(2014, 1, 2, 10, 0, 0), End = new DateTime(2014, 1, 2, 14, 30, 0) })
</div>
并且,在点击或其他任何内容时,只需在传递新数据时通过调用局部视图重新加载占位符。
$.ajax({
type: "GET",
dataType: "json",
url: "/Data/MyPartialView",
data: {
start: newStart,
end: newEnd
},
success: function (data) {
$("#MyPartialView").html(data);
}
});
(您当然需要一个Controller动作(Data / MyPartialView)来返回部分动作。)
如果我理解你的问题,那就是我要开始......