Помощь с AJAX, не работающим с CMS на базе ASPX - PullRequest
0 голосов
/ 09 марта 2011

Итак, вот фон: Я установил Orchard CMS в коробку с Windows под управлением IIS 7 и .NET 4. Все работает отлично.

Есть контактная форма, довольно прямолинейная, с той лишь разницей, что отправка осуществляется через Ajax.

Сценарий Ajax довольно прост и отлично работает при тестировании вне среды CMS

    var dataString = 'fName='+ fName + '&fTitle='+ fTitle + '&fCompany='+ fCompany + '&fEmail=' + fEmail + '&fPhone=' + fPhone + '&fOptout=' + fOptout;  
//alert (dataString);return false;  
$.ajax({  
  type: "POST",  
  url: "/form_pc_aspx",  
  data: dataString,  
  //changed to error for testing purposes.  test is error
  success: function() {  
    $('.error').hide();
    $('#calc-blind').hide();  
    $('#calcForm').fadeIn();  
  }  
});  
return false;  

Проблема в том, что после размещения страницы в CMS /form_pc.aspx блокируется с помощью 404, поэтому код не будет обрабатываться.

Я задал этот вопрос на Садовом форуме без удачи.

Кажется, это вопрос разрешений, но я не знаю, как разрешить прямой доступ к этому файлу form_pc.aspx или как разрешить Ajax отправлять форму.

Буду признателен за любую помощь, указывающую мне правильное направление.

Ответы [ 2 ]

1 голос
/ 10 марта 2011

Вместо публикации на странице aspx внутри Orchard вы должны выполнить публикацию на контроллере, который вы поместили в один из ваших модулей. Используя помощников MVC, вы можете найти URL вашего действия внутри вашего контроллера и выполнить вызов ajax таким образом. Я знаю, что это работает, потому что это то, что я делаю в одном из моих модулей, которые я создал для изучения Орчарда.

0 голосов
/ 10 марта 2011

Orchard CMS основана на ASP.NET MVC 3 , поэтому по умолчанию URL-адреса, заканчивающиеся на .aspx , отсутствуют. Вы не можете просто поместить файл .aspx WebForms и заставить его работать. Я бы порекомендовал вам прочитать эту статью о смешивании ASP.NET MVC с WebForms. Orchard CMS - это всего лишь приложение ASP.NET MVC (хотя и причудливое), так что это наверняка выполнимо.

Не могли бы вы предоставить более подробную информацию о вашей настройке и что именно вы хотите достичь? Это поможет мне предоставить вам более конкретное решение.

На первый взгляд кажется, что что-то не так и может быть легко достигнуто без всякой ниндзя-микширования-стиля-mvc-and-webforms :)

...