簡體   English   中英

JSON 和 ASP.NET WebMethod 不觸發服務器端方法

[英]JSON and ASP.NET WebMethod not firing server side method

我正在嘗試使用WebMethod將參數傳遞給我的代碼。

我正在達到 ajax 的成功結束,但我的 aspx.cs 代碼中的方法沒有被調用,我有錯誤。

手術失敗! 詳細信息:'[對象對象]

如果它有所作為,我正在使用母版頁。

如何解決這個問題?

拜托,你能幫我嗎?

Javascript:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://cdn.jsdelivr.net/json2/0.1/json2.js"></script>
<script type="text/javascript">
    $(function () {
        $("[id*=imgfasi]").bind("click", function () {
            var fasi = {};
            fasi.Txseltlc = $("[id*=txseltlc]").val();
            fasi.Txrescldisa = $("[id*=txrescldisa]").val();
            fasi.Ddlauttlc = $("[id*=ddlauttlc]").val();
            $.ajax({
                type: "POST",
                url: "Default.aspx/Savepnfasi",
                data: '{fasi: ' + JSON.stringify(fasi) + '}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    if (response == "1") {
                        alert("Success!");
                    } else {
                        alert("Operation failed! Details: " + response);
                    }
                }
            });
            return false;
        });
    });
</script>

后面的代碼:

public class pnfasiweb
{
    public string Txseltlc { get; set; }
    public string Txrescldisa { get; set; }
    public string Ddlauttlc { get; set; }
}

[WebMethod]
[ScriptMethod]
public static void Savepnfasi(pnfasiweb fasi)
{
    if (!String.IsNullOrEmpty(HttpContext.Current.Request.QueryString["id"]))
    {         
        string ProductID = Mpskmt3.Base64ForUrlDecode(HttpContext.Current.Request.QueryString["id"].ToString());

        string sql = String.Format(@" UPDATE `dotable` ");
        sql += String.Format(" SET ");
        sql += String.Format(" Aut = ?, ");
        sql += String.Format(" Res = ?, ");
        sql += String.Format(" Dur = ?, ");
        sql += String.Format(" Comp = CASE WHEN Comp IS NULL THEN ? ELSE CONCAT(Comp, '; ', ?) END, ");
        sql += String.Format(" doDateHour = CURRENT_TIMESTAMP() ");
        sql += String.Format(" WHERE ID = ?; ");

        using (OdbcConnection cn =
                new OdbcConnection(ConfigurationManager.ConnectionStrings["ConnMySQLlocalhost"].ConnectionString))
        {
            using (OdbcCommand command =
                    new OdbcCommand(sql, cn))
            {
                try
                {
                    command.Connection.Open();                       
                    command.Parameters.AddWithValue("param1", fasi.Ddlauttlc.ToString());
                    command.Parameters.AddWithValue("param2", Convert.ToInt32(fasi.Txrescldisa.ToString()));
                    command.Parameters.AddWithValue("param3", Convert.ToInt32(fasi.Txseltlc.ToString()));
                    command.Parameters.AddWithValue("param4", Mpskmt3.Container.TheObjectPropertyName);
                    command.Parameters.AddWithValue("param5", Mpskmt3.Container.TheObjectPropertyName);
                    command.Parameters.AddWithValue("param6", ProductID.ToString());
                    command.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    command.Connection.Close();
                }
            }
        }
    }
    else
    {
       //Error
    }
}

#Edit01

在此處輸入圖片說明

嘗試這個 :

var qString = "?" + window.location.href.split("?")[1];
var fasi = {};

...

url: "Default.aspx/Savepnfasi" + qString,
data: '{fasi: ' + JSON.stringify(fasi) + '}',

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM