0
攝製:WebMethod不能在ASP.Net Web角色(Web窗體)中使用?
- 打開VS2013,文件>新建 「Azure的雲服務」 項目>添加 「ASP.NET Web角色」(命名爲WebRole1)
- 選擇 「Web窗體」 模板Web角色。
- 將jquery-1.11.1.min.js和一個新的WebForm1.aspx添加到WebRole1項目中。
下面的代碼添加到WebForm1.aspx的
<script src="jquery-1.11.1.min.js"></script> <script> $(function() { $.ajax({ type: "POST", url: "WebForm1.aspx/Foo", beforeSend: function (xhr) { xhr.setRequestHeader("Content-type", "application/json; charset=utf-8"); }, contentType: "application/json; charset=utf-8", dataType: "json", data: "{a: 'webmethod!'}", success: function(data) { alert(data.d); }, error: function() { alert("error"); } }); });
以下函數添加到WebForm1類中WebForm1.aspx.cs中
[WebMethod()] public static string Foo(string a) { return a; }
集WebRole1項目作爲啓動項目並運行。瀏覽器提醒「未定義」。
但是你可以得到「webmethod!」使用普通的ASP.NET WebForm項目。哪裏不對?
我注意到,在url: "WebForm1.aspx/Foo"
:如果更改ASPX部分,ajax的失敗;如果您將Foo部分更改爲任何值,那麼ajax總是成功。這是不尋常的!在普通的ASP.NET Web Form應用程序中,更改任一部分都會導致「錯誤」!
如果您創建一個空的ASP.NET Web角色,阿賈克斯會成功!到底是怎麼回事?
您是否已通過將頁面方法設置爲true來啓用頁面方法? – 2015-04-02 09:51:34