从JavaScript调用ASP.NET查看具有新值的功能

时间:2014-01-06 16:05:38

标签: javascript asp.net asp.net-mvc

我有一个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中通过每次使用新值动态构建新列表来实现,但我正在寻找通过发送新值将此责任传递到服务器端的方法。

1 个答案:

答案 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)来返回部分动作。)

如果我理解你的问题,那就是我要开始......