2014-01-24 97 views
0

我想调用的方法插入这是Edit.aspx.cs,但他并没有叫如何从javascript的asp.net .cs页面调用方法?

<script src="jquery-2.0.2.js"></script> 

    <script language="javascript"> 
       function insert() { 

       $.ajax({ 
       type: "POST", 
       url: "Edituser.aspx.cs/insert", 
       success: function() { alert('success'); }, 
       error: function() { alert('error'); } 

       }); 


       } 


</script> 

<input type="button" id="Button1" style="display: none" onclick="changecourse(); insert();" value="add" /> 

我隐藏

public void insert() 
    { 
     string a = Hidden1.Value; 
     string UserId = Convert.ToString(Session["LoginId"]); 
     con.Open(); 
     SqlCommand cmd = new SqlCommand("INSERT INTO UserDepot (UserId,DepotId)" + 
      "VALUES ('" + UserId + "','" + a + "')", con); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
    } 
+0

你当然不能发出一个'.cs'文件的请求,就像... cfr Milind的答案在这里。 –

回答

4

对于它的工作,确保该方法位置在url设定是正确的,该方法是publicstatic,这是又增加了一个[WebMethod]属性如:

[WebMethod] 
public static void doAll() 
{ 
    //do something 
} 

如果url是 “/Default.aspx/insert”,那么你的方法应该是这样的:

[WebMethod] 
public static void insert() 
{ 
    //do something 
} 
+1

我不知道你可以把WebMethods放在页面后面的代码中 - 有趣的是,你认为这是一种好的做法还是你会使用单独的WS/WCF? – Liath

+0

WebMethod指示“作为XML Web服务的一部分公开的方法”。它可以通过Web服务调用该方法。所以我相信你应该使用这 –

+0

如果你正在考虑使用WCF,我会使用ASP.NET Web API。这很容易......但如果你只有几个方法,这将是矫枉过正。 – timmkrause

0

发送查询字符串编辑用户ASPX

$.ajax({ 
      type: "POST", 
      url: "Edituser.aspx?run=add", 
      success: function() { alert('success'); }, 
      error: function() { alert('error'); } 

      }); 

然后再把如果到页面加载Edituser.aspx

if (Request.QueryString["run"] == "add") 
      { 
       insert();//your Function Name 
      } 
相关问题