2011-07-05 2 views
2

Я новичок в JQuery. Я пытаюсь вызвать метод сервера из моего пользовательского элемента управления с помощью JQuery ajax. Для меня связано, что когда страница сервера, на которую отправлен запрос, находится в корневом пути, работает ajax. Но когда я переехал страницу в подпапку и изменил параметр Адрес JQuery Ajax, ничего не произошло ...JQuery .ajax не работает после изменения url страницы aspx webmethod

Ниже веб-метод в WebForm1.aspx.cs:

namespace WebApplication11 
{ 
    public partial class WebForm1 : System.Web.UI.Page 
    { 
     [System.Web.Services.WebMethod] 
     public static string test2() 
     { 
      return "TestString"; 
     } 

     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
    } 

}

Когда страница находится под root, она работает. Моя функция Аякса в пользовательском элементе управления находится здесь:

<%@ Control Language="C#" AutoEventWireup="true" 
CodeBehind="WebUserControl1.ascx.cs"  
Inherits="WebApplication11.NewFolder1.WebUserControl1" %> 

    <script type ="text/javascript"> 
    function ajaxTest() 
    { 

     $.ajax({ 
     type: "post", 
     url: "WebForm1.aspx/test2", 
     data: "{}", 
     contentType: "Application/json; charset=utf-8", 
     dataType: "json", 
     success: function (r) {alert(r.d);} 


     }) 
    } 
    </script> 

    <input type = "checkbox" id = "c1" onchange = "ajaxTest()" /> 

Но после того, как я двигаюсь страница WebForm1.aspx от корня к подпапке «NewFolder2», и изменил «URL» в методе АЯКСА от «WebForm1.aspx/test2 "в" /NewFolder2/WebForm1.aspx/test2 "или " NewFolder2/WebForm1.aspx/test2 ", ничего не произошло.

Я расстроен сейчас. Может ли кто-нибудь дать мне подсказку, чтобы понять это? Большое спасибо!

ответ

1

Вы помещаете путь из папки управления в метод ajax или со страницы, на которую наложено управление? Когда элемент управления помещается на страницу, его вызовы метода ajax должны следовать по пути, как если бы он был на самой странице, потому что это то, как оно отображается.

+0

Спасибо, Jmein. Фактически, когда я помещаю обе страницы - один пользовательский элемент управления с помощью Jquery Ajax-метода, другой имеет требуемый веб-метод - под корневым путем он работает. Однако, когда я помещаю их в подпапку, такую ​​как «F1», она не может работать ... Я попытался использовать URL-адрес в ajax-методе с помощью «/F1/webMethodPage.aspx/webMethod», «F1/webMethodPage.aspx/webMethod "," webMethodPage.aspx/webMethod "," /webMethodPage.aspx/webMethod "и даже" ../F1/webMethodPage.aspx/webMethod ". Ни один из них не может работать. –

+0

@Big Bob вы можете объяснить свою точную структуру файловой системы? Где находится главная страница и где находится страница веб-методов? –

+0

Привет, Jmein, Спасибо вам за помощь. Наконец, я обнаружил, что путь ссылки на JQuery был неправильным, когда я пытался использовать свой пользовательский элемент управления на странице ... Спасибо :) –

Смежные вопросы