Asp.net mvc 2 ASP.NET日历OnSelectionChanged处理程序未被调用

Asp.net mvc 2 ASP.NET日历OnSelectionChanged处理程序未被调用,asp.net-mvc-2,Asp.net Mvc 2,有人能告诉我为什么当我点击日历控件中的某一天时,名为“MyCalendar\u SelectionChanged”的事件处理程序没有被执行吗?这是来自示例ASP.NET MVC2应用程序的简单aspx代码: <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> <script runat="server"> priv

有人能告诉我为什么当我点击日历控件中的某一天时,名为“MyCalendar\u SelectionChanged”的事件处理程序没有被执行吗?这是来自示例ASP.NET MVC2应用程序的简单aspx代码:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<script runat="server">
private void MyCalendar_SelectionChanged (object sender, System.EventArgs e) 
{
    //lbl1.Text = Calendar1.SelectedDate.ToString();
    Console.WriteLine("test");
} 
</script>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Home Page
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
  <form id="Form1" runat="server">
<h2><%= Html.Encode(ViewData["Message"]) %></h2>
    <p>
        To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
    </p>

    <div>
    <asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="MyCalendar_SelectionChanged" />     

    </div>    
</form>    
</asp:Content>

private void MyCalendar\u SelectionChanged(对象发送者,System.EventArgs e)
{
//lbl1.Text=Calendar1.SelectedDate.ToString();
控制台写入线(“测试”);
} 
.

因此,以下是您可能采取的措施:

与往常一样,您从MVC中的M(模型)开始,它将表示您愿意显示的信息(在您的案例中是日期):

然后进入MVC中的C(控制器):

然后MVC中的V(视图):

如果您希望表单在用户选择值时自动提交:

$(function() {
    $('#Date').datepicker({
        onSelect: function(dateText, inst) { 
            $('form').trigger('submit');
        }
    });
});
从MVC开始的一个好地方是:

public class HomeController: Controller
{
    // used to render the view
    public ActionResult Index()
    {
        var model = new MyViewModel
        {
            Date = DateTime.Now
        };
        return View(model);
    }

    // will be called when the form is submitted
    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        return View(model);
    }
}
<%@ Page 
    Language="C#" 
    MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage<AppName.Models.MyViewModel>" 
%>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <% using (Html.BeginForm()) { %>
        <%= Html.EditorFor(x => x.Date) %>
        <input type="submit" value="OK" />
    <% } %>
</asp:Content>
$(function() {
    $('#Date').datepicker();
});
$(function() {
    $('#Date').datepicker({
        onSelect: function(dateText, inst) { 
            $('form').trigger('submit');
        }
    });
});