如果WEBFORM頁面有呼叫後端方法去執行某些工作的時候,可以使用微軟的AJAX擴充功能的PageMethods來實現。
首先在頁面中增加AJAX 的 ScriptManager ,並將ScriptManager增加 EnablePageMethods="true"
並在後端程式碼中選擇一個方法將它變成靜態方法並在方法前面增加一個[WebMethod]
接著在前端的js中增加呼叫與返回函式
提供一個執行的位置
這樣就可以從前端呼叫到後端的方法,進行操作。
以上方法試用於 .Net 4.0,如果你產生專案的時候選擇的是 .NET 4.5 的話,因為新傳案預設套件中有 Friendly URL 這個套件,他會將符合的路由路徑重新導向,因此需要修改專案裡面的\App_Start\RouteConfig.cs 裡面的RedirectMode.Permanent 修改為 RedirectMode.Off
使用 PageMethods.set_path('pagepath.aspx') 並將實際頁面路徑在JS中設定給PageMethods
參考來源
[ASP.NET AJAX]如何使用 PageMethods 實現非同步機制(一)-基本介紹
[C#][ASP.NET]如何使用Client Script呼叫Server Function
ASP.NET AJAX PageMethods call load whole page for .NET 4.5 IIS 7.5
首先在頁面中增加AJAX 的 ScriptManager ,並將ScriptManager增加 EnablePageMethods="true"
<asp:ScriptManager ID="ScriptManagerID" runat="server" EnablePageMethods="true"></asp:ScriptManager>
並在後端程式碼中選擇一個方法將它變成靜態方法並在方法前面增加一個[WebMethod]
[WebMethod]
public static string Update(string Id)
{
//呼叫後處理 ........ }(WebMethod 需 using System.Web.Services)
接著在前端的js中增加呼叫與返回函式
function CallMethod(value) { //呼叫Server Function PageMethods.Update(value, OnSuccess, OnFailure);
} function OnSuccess(result) { console.log(result); } function OnFailure(error) { if (error != null) { alert(error.get_message()); } }
提供一個執行的位置
$(document).ready(function () { CallMethod('a'); });
這樣就可以從前端呼叫到後端的方法,進行操作。
以上方法試用於 .Net 4.0,如果你產生專案的時候選擇的是 .NET 4.5 的話,因為新傳案預設套件中有 Friendly URL 這個套件,他會將符合的路由路徑重新導向,因此需要修改專案裡面的\App_Start\RouteConfig.cs 裡面的RedirectMode.Permanent 修改為 RedirectMode.Off
public static void RegisterRoutes(RouteCollection routes) { var settings = new FriendlyUrlSettings(); settings.AutoRedirectMode = RedirectMode.Off; routes.EnableFriendlyUrls(settings); }
使用 PageMethods.set_path('pagepath.aspx') 並將實際頁面路徑在JS中設定給PageMethods
$(document).ready(function () { PageMethods.set_path('pagepath.aspx'); CallMethod('a'); });
參考來源
[ASP.NET AJAX]如何使用 PageMethods 實現非同步機制(一)-基本介紹
[C#][ASP.NET]如何使用Client Script呼叫Server Function
ASP.NET AJAX PageMethods call load whole page for .NET 4.5 IIS 7.5
留言
張貼留言