如何将控件值从javaScript传递到c# WebMethod
本文关键字:WebMethod javaScript 控件 | 更新日期: 2023-09-27 18:15:47
我已经被这个问题困了一段时间了,现在真的可以使用一些建议…
我正在做ASP。Net网页,到目前为止有大约60个控件(文本框,复选框和下拉列表),其中一些来自web用户控件。如果可能的话,我想保存数据而不回发。我试图通过AJAX来实现这一点,但我无法用c# web方法引用我的控件。
在没有回发的情况下调用常规c#方法是否可行?或者是唯一的方法来实现这一点,也许通过传递数组的所有控件值从JavaScript到c# web方法?如果是这样,是否有任何简单的方法来获得所有的控制值到一个数组在JavaScript,然后到一个DataTable
在c# ?请随意提出解决这个问题的其他方法。
我在这里回答了一个类似的问题:
从客户端调用asp.net ajax服务器控件的公共函数
你基本上设置了一个asmx服务,并添加一些脚本启用属性,让脚本管理器生成一些ajax代理存根调用。
我最近在一个web应用程序中做了这件事,我正在转换从更新面板,我的服务器调用看起来像:
var data = $("#inlineContent :input").serialize();
MyApplication.AttorneyService.PostAttorneyForm(data,
function(result) { ... };
function(error) { ... });
然后在服务器上,我将序列化字符串读入字典,并且使用它来填充知道如何将自身更新到SQL服务器的业务对象。
客户端
$.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
}
如果字典的键与方法的参数同名,则可以直接调用它们