asp:日历在MVC中无法正常工作

时间:2008-12-10 20:31:49

标签: asp.net-mvc

我在我的视图页面上有一个asp:日历,当我将鼠标悬停在它上面时..它显示了一个javascript回发状态栏。但是当我将鼠标悬停在同一页面上时,我也有一个asp:按钮。来自控制器的操作位于状态栏中。因为我在按钮上有一个onClick属性,可以触发服务器端的操作。并且在asp:日历中我也有一个触发事件OnSelectionChanged在服务器端有一个方法...但正如我所说,当我将鼠标悬停在日历上以在状态栏中选择一个日期时它显示:javascript:_doPostBack($ ct100ContentPlaceHolder?mycalendar',''3270)当我点击一个日期时,我收到一条错误,说明对象不支持这种方法。另外mycalendar是asp:calendar的id名称

3 个答案:

答案 0 :(得分:8)

ASP.NET服务器端控件实际上并不适合与MVC一起使用。服务器端控件将View和Controller组合在一个包中,而MVC将它们分开。

Calendar控件不起作用的另一个原因是它依赖于回发模型,后者在MVC中不起作用。

我建议尝试使用javascript日历控件。

答案 1 :(得分:7)

Sam是对的(upvoted)。看看在你的网络应用程序中使用jQuery。在jQuery的UI(它是一个额外的.js文件)中,有一个很棒的日历选择器(如果这是你想要做的 - 选择一个日期)。只需确保您获取日期选择器的.css文件。

jQuery:http://jquery.com/
jQuery UI:http://ui.jquery.com/
jQuery datepicker演示:http://ui.jquery.com/repository/tags/latest/demos/functional/#ui.datepicker

我认为您需要获取开发包以确保获取日期选择器的.css文件

http://ui.jquery.com/download

如果你找不到css文件(我不能)在google上搜索ui.datepicker.css

答案 2 :(得分:0)

你可以尝试BaseCalendar,它不依赖或使用回发。