动作视图中的MVC 4 c#日历小部件

本文关键字:日历 小部 MVC 视图 | 更新日期: 2023-09-27 18:06:28

我在MVC应用程序中使用HTML,CSS和c#创建了一个web日历。HTML位于视图中,我有一个控制器,该控制器具有初始化Calendar并在视图上显示正确日期的操作。

它按预期工作,但问题来自于这样一个事实,我想把这个日历嵌入到几个页面在不相关的视图由不同的动作和不同的模型加载控制。

我可以复制粘贴视图代码并对模型进行必要的调整,但这并不理想。我尝试了RenderAction,但问题是,当我使用按钮导航到不同的月份时,我离开了初始视图。例如:

@Html.ActionLink("‹", "Calendar", 
new { month = Model.RequestedDateTime.Month - 1, year = 
Model.RequestedDateTime.Year })

有办法修改这个行为吗?由于

动作视图中的MVC 4 c#日历小部件

Html。ActionLink,总是创建一个正常的链接,具有共同的行为。如果你想分享你的日历。为了避免冗余代码,您可以将日历重新设计为部分视图,并将链接替换为标签。将一个ajax函数绑定到label-click-event以刷新日历。比如:

@Html.Label("<", new { onclick="pageMonthBack("+Model.RequestedDateTime.Month - 1+", " Model.RequestedDateTime.Year+");" })

我将把调用的ajax函数放在单独加载的脚本中

我用类似developer10214建议的方法解决了这个问题。我用了一个div,用了Render.Action。然后使用以下代码

 $(function () {
 $("#cal").on('click', "#backwards", function () {
 $.ajax({
    url: "Home/Calendar?target=backwards",
    cache:false,
    type: "GET",
    success: function (result) {
        $("#cal").html(result);
    }
});
});
});

在包含页。我根本没有使用ActionLink。