C# 使用ASP.NET Core v2和Razorpages从Dropdown onChange事件获取SQL数据

C# 使用ASP.NET Core v2和Razorpages从Dropdown onChange事件获取SQL数据,c#,sql-server,asp.net-core,asp.net-core-mvc,razor-pages,C#,Sql Server,Asp.net Core,Asp.net Core Mvc,Razor Pages,我有一个使用C从SQL填充的下拉框。当用户在下拉框中选择一个条目时,我需要基于所选项运行SQL查询,并使用SQL的结果集填充其他一些输入字段 将其视为客户列表,在选择客户时,输入字段将填充客户的默认值,例如地址、城市等,稍后用户可以更改这些值 我的第一个想法是在下拉onchange事件上使用ajax调用,但不知道从哪里获取MSSQL数据?是否可以从URL从SQL检索数据?或者我可以用C将下拉列表绑定到onchange事件,并将查询数据从C添加到脚本块中吗 解决这个问题的好方法是什么 我正在使用A

我有一个使用C从SQL填充的下拉框。当用户在下拉框中选择一个条目时,我需要基于所选项运行SQL查询,并使用SQL的结果集填充其他一些输入字段

将其视为客户列表,在选择客户时,输入字段将填充客户的默认值,例如地址、城市等,稍后用户可以更改这些值

我的第一个想法是在下拉onchange事件上使用ajax调用,但不知道从哪里获取MSSQL数据?是否可以从URL从SQL检索数据?或者我可以用C将下拉列表绑定到onchange事件,并将查询数据从C添加到脚本块中吗

解决这个问题的好方法是什么

我正在使用ASP.NET Core v2和Razorpages

谢谢

Thomas

您应该使用ajax。 创建如下所示的ajax调用:

var dataToPost = {customer: "custumerValue", additionalData: "something"};
$.ajax("{path to controller}/GetData", {
    method: "POST",
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify(dataToPost)
}).done(function (data) {
    //set properties
    console.log(data.value1);
    console.log(data.value2);
}).fail(function () {
    //error
});
并在控制器中创建一个函数:

public virtual JsonNetResult GetData(string customer, string additionalData)
{
    // Get data

    return new JsonNetResult()
    {
        Data = new
        {
            value1 = "something",
            value2 = "something"
        }
    };
}
确保指定控制器的正确路径,如果控制器名为CustomerController,则只应在url中插入Customer。此外,函数和参数的名称必须与ajax调用中使用的名称匹配

希望这有帮助