2010-07-17 3 views
0

J'ai une vue fortement typée appelée News avec un contrôle de calendrier. J'ai défini gestionnaire selectionChanged du calendrier comme suit:Appel de l'action ASP.NET MVC Controller sur l'événement de vue

<script runat="server"> 

     void OnCalendarSelectionChanged(Object sender, EventArgs e) 
     { 
      var ndt = new Nullable<DateTime>(Calendar1.SelectedDate);   
      Html.RenderAction("ShowNews", new {dateTime = ndt }); 

     } 

    </script> 

Dans le contrôleur, j'ai la méthode suivante:

 public ActionResult ShowNews(Nullable<DateTime> dateTime) 
     { 
      IEnumerable<InvestmentNews> todaysNews = new List<InvestmentNews>(); ; 

      return View("News", todaysNews); 
     } 

Lorsque je clique sur une date dans mon calendrier, la méthode Index() dans mon contrôleur est appelé à la place de ShowViews(). Quelqu'un peut-il expliquer s'il vous plaît ce qui se passe?

TIA.

Répondre

5

Il me semble que vous essayez d'utiliser un contrôle WebForm dans votre action MVC. Généralement, cela ne fonctionne pas. Qu'est-ce qui se passe sans aucun doute, c'est qu'il provoque une publication sur votre formulaire principal pour gérer l'événement de contrôle WebForm. Vous devriez vraiment regarder en utilisant un calendrier côté client, comme le widget jQuery UI datepicker et faire un post AJAX sur l'événement date sélectionnée sur le jp dateer de jQuery UI, en remplaçant l'affichage des nouvelles avec le HTML retourné de votre action ShowNews.

Questions connexes