0

我在 MVC 应用程序中使用 HTML、CSS 和 C# 创建了一个网络日历。HTML 在一个视图中,我有一个控制器,它带有一个初始化日历并在视图上显示正确日期的操作。

它按预期工作,但问题在于我想将此日历嵌入到由不同操作控制并加载不同模型的不相关视图中的几个页面中。

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

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

有没有办法修改这种行为?谢谢

4

2 回答 2

1

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

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

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

于 2013-03-30T11:40:54.463 回答
0

我以类似于 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。

于 2013-04-01T06:48:30.377 回答