Переменные содержат значения, но в действии они равны NULL - PullRequest
0 голосов
/ 24 марта 2012

У меня следующий код js:

 $("#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);
        });

Это действие:

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

В firebug все переменные заполнены правильно: date содержат дату, test содержат1 и eventId содержат 12.Но в действии контроллера dayRange и evendId равны null.Параметр date заполнен.

Где проблема?

ОБНОВЛЕНИЕ: 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>

Мои маршруты:

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
                });
        }

Спасибо.

Ответы [ 3 ]

1 голос
/ 24 марта 2012

Может быть какой-то параметр содержит пробелы.

Проверьте причину, по которой я столкнулся с той же проблемой позавчера ...

0 голосов
/ 24 марта 2012

Попробуйте удалить /

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

Если вы никогда не возились с файлом Global.asax, по умолчанию URL-адреса перенаправляются на {controller}/{action}/{id}.

. Я бы порекомендовал использоватьОднако ViewModel для передачи ваших данных, поскольку вы используете MVC.

0 голосов
/ 24 марта 2012

для dayRange вы можете использовать $("#selectdayRange").text()

, вам также может понадобиться encodeURIComponent($("#selectdayRange").text());, чтобы можно было вставить параметр запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...