[英]How to pass control values from javaScript to a C# WebMethod
我一直堅持這個問題一段時間,真的可以使用一些建議......
我正在開發一個ASP.Net網頁,到目前為止,它有大約60個控件(文本框,復選框和下拉列表),其中一些來自Web用戶控件。 如果可能的話,我想在沒有回發的情況下保存數據。 我試圖通過AJAX實現這一點,但無法用C#web方法引用我的控件。
無論如何在沒有回發的情況下調用常規C#方法? 或者是通過將所有控件值的數組從JavaScript傳遞到C#Web方法來實現此目的的唯一方法? 如果是這樣,有沒有簡單的方法將所有控件值放入JavaScript中的數組中,然后放入C#中的DataTable
?
請隨意為此問題提出任何其他解決方案。
我在這里回答了類似的問題:
你基本上設置了一個asmx服務,並添加一些腳本啟用屬性,讓腳本管理器生成一些ajax代理存根調用。
我最近在一個Web應用程序中做了這件事,我正在轉換表單更新面板,我的服務器調用看起來像:
var data = $("#inlineContent :input").serialize();
MyApplication.AttorneyService.PostAttorneyForm(data,
function(result) { ... };
function(error) { ... });
然后在服務器上,我將序列化字符串讀入字典,並使用它來填充知道如何將自身更新到sql server的業務對象。
客戶端
$.ajax({
type: 'POST',
url: "changebrands.aspx/UpdatePlan",
data: '{token:"{0}", plan:"{1}"}'.format(token, currPlan),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (json) { //process return
}
});
服務器端(C#)
using System.Web.Services;
[WebMethod]
public static string UpdatePlan(string token, string plan)
{
//whatever
}
如果您將字典的鍵命名為方法的參數,則可以直接調用它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.