2012-03-24 3 views
0

Ich habe folgendes js Code:Variablen enthalten Werte, sondern in Aktion, die sie gleich NULL

$("#dateRange").change(function() { 
      var date = $(this).attr("value"); 

      var test = "1"; 
      var eventId = $("div.movie").attr("eventid"); 
      $("#scheduleList").load("/EventSchedule/GetSchedule/?date=" + date + "&dayRange=" + test + "&eventId=" + eventId); 
     }); 

Dies ist Aktion:

public EmptyResult GetSchedule(string date, string dayRange, string eventId) 
     { 
       // some code 
     } 

Im Firebug alle Variable korrekt ausgefüllt: date Datum enthalten, test enthalten 1 und eventId enthalten 12. Aber in der Controller-Aktion dayRange und evendId entspricht null. Der date Parameter ist ausgefüllt.

Wo ist das Problem?

UPDATE: div.movie:

<div class="movie" eventid="12" type="Film"> 
    <div class="poster"> 
    <img src="/Image/GetImage"> 
    <div class="btn_buy_ticket"> 
     <div> 
     <i></i> 
     <span> 
      <a href="#">Купить билет</a> 
     </span> 
     <em></em> 
     </div> 
    </div> 
    </div> 
    </div> 

Meine Routen:

public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.MapRoute(
       "Default", // Route name 
       "{controller}/{action}/{id}", // URL with parameters 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
      ); 


      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      var entryRoute = new PageEntry("page/{name}/", 
              new RouteValueDictionary(
               new 
               { 
                controller = "DynamicPage", 
                action = "Index", 
                name = string.Empty 
               }), 
               new RouteValueDictionary(new { name = @".+" }), 
              new MvcRouteHandler()); 

      routes.Add("display-page", 
         entryRoute); 

      routes.MapRoute(
       "Activate", 
       "Account/Activate/{username}/{key}", 
       new 
       { 
        controller = "Account", 
        action = "Activate", 
        username = UrlParameter.Optional, 
        key = UrlParameter.Optional 
       }); 
     } 

Dank.

+0

können Sie buchen den 'div.movie' und' selectdayRange' html? –

+0

Was enthält dayRange? hast du versucht, Werte zu codieren und zu sehen, ob das durchkommt? – dreza

+0

Ich habe gerade folgendes versucht: '$ (" # templateList "). Load ("/EventSchedule/GetSchedule /? Datum = "+ Datum +" & eventId = 5 ");' aber 'eventId' in der Aktion ist gleich 'NULL' . Das ist sehr seltsam. – user1254282

Antwort

1

Könnte sein, dass einige Parameter Leerzeichen enthalten.

Sie sicher, dass ich gleiche Problem Tag haben konfrontiert verursachen, bevor gestern ..

+0

Ja, Datum enthält Leerzeichen. Ich war gelöst. Wie auch immer, ich markiere deine Antwort als akzeptiert. – user1254282

0

für dayRange können Sie verwenden möchten $("#selectdayRange").text()

Sie auch encodeURIComponent($("#selectdayRange").text()); benötigen, um in der Lage sein, eine Abfrage-Parameter einzufügen.

+0

'DayRange verwendet nicht ' – user1254282

0

Versuchen Entfernen des/

$("#scheduleList").load("/EventSchedule/GetSchedule?date=" + date ... 

Wenn Sie noch nie mit Ihrer Datei Global.asax getüftelt haben, standardmäßig URLs Route zu {controller}/{action}/{id}.

Ich würde empfehlen, ein ViewModel zu verwenden, um Ihre Daten jedoch zu übergeben, da Sie MVC verwenden.

+0

Ja, ich habe versucht, zu entfernen /, aber das gleiche Ergebnis. – user1254282

Verwandte Themen