2011-11-23 95 views
0

我一直停留在这个问题上有一段时间了,并真的可以使用一些意见...如何从JavaScript传递控制值到C#的WebMethod

我工作的一个ASP.Net网页时到目前为止大约有60个控件(文本框,复选框和下拉列表),其中一些控件来自Web用户控件。如果可能的话,我想保存数据而不用回传。我正在尝试通过AJAX完成此操作,但无法使用C#web方法引用我的控件。

反正有没有回发调用常规的C#方法?或者是通过将所有控制值的数组传递给C#web方法来完成此操作的唯一方法?如果是这样,是否有任何简单的方法可以将所有控制值转换为JavaScript中的数组,然后在C#中使用DataTable

随意提出任何其他解决方案来解决这个问题。

回答

1

我在这里回答了类似的问题:

calling a public function of an asp.net ajax server control from client side

你基本上建立一个ASMX服务,并补充说,让脚本管理产生一些Ajax代理存根调用一些脚本启用属性。

我最近在一个web应用程序做这个确切的事情,我将离开形式更新面板,我的服务器调用看起来是这样的:

var data = $("#inlineContent :input").serialize(); 
MyApplication.AttorneyService.PostAttorneyForm(data, 
    function(result) { ... }; 
    function(error) { ... }); 

然后在服务器上,我看了连载串入一个字典,和 使用它来填充知道如何将自身更新到sql server的业务对象。

+0

感谢您的回复。这听起来像是我的项目的一个可能的解决方案,但我仍然有点困惑它将如何从我的控件中获取值。你可以提供一个这样的例子,或者详细阐述这个过程...感谢您的帮助,非常感谢! – G8Tech

+0

JavaScript调用站点位于页面上,并带有控件值。在那里阅读并传递给服务电话。一定要在服务器上验证它们,绝不相信用户输入! – asawyer

1

客户方

$.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 
    } 

如果命名词典的键的相同的名称作为方法的PARAMS那么你可以直接给他们打电话。

相关问题