none
今天发现一个ajax传参问题 RRS feed

  • 问题

  • 在论坛大概搜索了下,没找到相关内容,所以,就发个问,请教一下。今天在用JavaScript方法调用后台方法时,发现根本就没有更新到数据,后台方法是一个update table的操作,附加进程,调试跟踪,一切正常,无任何问题,但数据就是没有更新到,找来找去,最后只发现参数的类型可能有问题,就修改为string,结果,成功。

    --前台方法,参数分别为流水号,工资金额
    my_sp_page.UpdateRow(log_id.eq(i).val(), charge.eq(i).val());
    --后台方法
    [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
    public void UpdateRow(int log_id,decimal charge)

    就是把这里的charge定义为了decimal 型,导致无法执行,又不报错,真是杀人于无形,JavaScript与c#之间没有数据类型转换机制吗,难道就只能用int,string这2中类型吗,请高手详细分解。

    2010年5月15日 6:12

答案

  • 你好,

    参考下面的文章,应该是可以转换的。

    http://www.dwww.cn/News/2008-7/2008724204277775.shtml

    e.g.

    [System.Web.Services.WebMethod]
      [System.Web.Script.Services.GenerateScriptType(typeof(int))]
      [System.Web.Script.Services.GenerateScriptType(typeof(decimal))]
      public static string ReturnTestString(string name)
      {
        return "Hello "+name+", this is a test for page method!";
      }

    Microsoft Online Community Support
    2010年5月17日 5:46
  • 本质上说,只能传递字符串,进行转换需要自己去实现。各种框架也好,都是进行了包装或者进行了隐式转换。JavaScript与C#之间没有任何关系。
    【孟子E章】
    2010年5月17日 5:53
    版主

全部回复

  • 你好,

    参考下面的文章,应该是可以转换的。

    http://www.dwww.cn/News/2008-7/2008724204277775.shtml

    e.g.

    [System.Web.Services.WebMethod]
      [System.Web.Script.Services.GenerateScriptType(typeof(int))]
      [System.Web.Script.Services.GenerateScriptType(typeof(decimal))]
      public static string ReturnTestString(string name)
      {
        return "Hello "+name+", this is a test for page method!";
      }

    Microsoft Online Community Support
    2010年5月17日 5:46
  • 本质上说,只能传递字符串,进行转换需要自己去实现。各种框架也好,都是进行了包装或者进行了隐式转换。JavaScript与C#之间没有任何关系。
    【孟子E章】
    2010年5月17日 5:53
    版主