javascript - ASP.NET MVC AJAX 将参数传递给 Controller

标签 javascript c# asp.net ajax asp.net-mvc

我收到此错误

There is no argument given that corresponds to the required formal parameter 'SSN' of HomeController.GetCICO(string)

从此代码:

public JsonResult GetAllCICO()
    {
        var cicos = GetCICO().ToList();
        var jsonResult = Json(new{data = cicos}, JsonRequestBehavior.AllowGet);
        jsonResult.MaxJsonLength = int.MaxValue;
        return jsonResult;
    }

这是 GetCICO:

public List<CICO> GetCICO(string SSN)
{
List<CICO> cicos = new List<CICO>();
using (SqlConnection con = new SqlConnection())
{
    con.ConnectionString = str;
    using (SqlCommand cmd = new SqlCommand())
    {
        cmd.Connection = con;
        cmd.CommandTimeout = 180;
        cmd.CommandText = "SELECT * FROM source_ips WHERE ssn_or_tin = '"+SSN+"' ORDER BY dateTrans ASC";
        con.Open();
        using (SqlDataReader sdr = cmd.ExecuteReader())
        {
            if (sdr.HasRows)
            {
                while (sdr.Read())
                {
                    CICO cico = new CICO()
                    {
                        ssn_or_tin = sdr["ssn_or_tin"] == DBNull.Value ? (double?)null : Convert.ToDouble(sdr["ssn_or_tin"]),
                        cusid = sdr["cusid"] == DBNull.Value ? (double?)null : Convert.ToDouble(sdr["cusid"]),
                        accountNo = sdr["accountNo"] == DBNull.Value ? (double?)null : Convert.ToDouble(sdr["accountNo"]),
                        dateTrans = sdr["dateTrans"].ToString(),
                        transCode = sdr["transCode"] == DBNull.Value ? (int?)null : Convert.ToInt32(sdr["transCode"]),
                        transdescription_1 = sdr["transdescription_1"].ToString(),
                        amount = sdr["amount"] == DBNull.Value ? (double?)null : Convert.ToDouble(sdr["amount"]),
                        cashin = sdr["cashin"] == DBNull.Value ? (double?)null : Convert.ToDouble(sdr["cashin"]),
                        cashout = sdr["cashout"] == DBNull.Value ? (double?)null : Convert.ToDouble(sdr["cashout"]),
                        source = sdr["source"].ToString()
                    };
                    cicos.Add(cico);
                }
            }
        }
        con.Close();
    }
}
return cicos;
}

这是我的 JavaScript:

var SSNdata = { SSN: $("#SSN").val() };
        $.ajax({
            type: "POST",
            url: "/Home/GetCICO",
            data: SSNdata,
            dataType: "json"
        });

最佳答案

Hansmagz,我认为您正在尝试通过 HttpGet 获取带有 uri "/Home/GetAllCICO" 的数据?

如果是这样,请尝试以下代码。

jquery

var SSNdata = { SSN: $("#SSN").val() };
    $.ajax({
        type: "GET",
        url: "/Home/GetCICO",
        data: SSNdata,
        dataType: "json"
    });

MVC Controller

public JsonResult GetAllCICO(SSNdata data)
{
    var cicos = GetCICO(data.SSN).ToList();
    var jsonResult = Json(new{data = cicos}, JsonRequestBehavior.AllowGet);
    jsonResult.MaxJsonLength = int.MaxValue;
    return jsonResult;
}

SSN数据类

public class SSNdata
{
     public string SSN{get;set;}
}

希望这有帮助!

关于javascript - ASP.NET MVC AJAX 将参数传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45115460/

相关文章:

javascript - 在 Canvas 圈内单击时打开弹出窗口

javascript - 如何在javascript中替换特定索引后的字符串

c# - ASP.net CORE 相对于 Asp.net 的主要优势

jquery - 该页面的状态信息无效并且可能已损坏。 (仅在 IE 中)

javascript - 循环内联与函数内函数?

javascript - d3.js 不能在 shadowDOM 中工作

c# - 实现 Windows 服务 - 如何满足这些要求?

c# - event 关键字的真正作用是什么?

c# - Repository.Checkout() 不会取消子模块更改

c# - 来自 Gridview 中 UserControl 的事件未被触发