Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 通过选择下拉列表ASP.NET Core MVC从数据库填充多个文本框_Ajax_Asp.net Core_Model View Controller - Fatal编程技术网

Ajax 通过选择下拉列表ASP.NET Core MVC从数据库填充多个文本框

Ajax 通过选择下拉列表ASP.NET Core MVC从数据库填充多个文本框,ajax,asp.net-core,model-view-controller,Ajax,Asp.net Core,Model View Controller,我必须使用Ajax从数据库中获取多列数据。当我选择下拉列表时,参数将在Ajax中传递给控制器,以获取所有值并显示在不同的文本框中。 我只能得到一列,但不能得到所有列。 请帮我解决这个问题。我的示例代码如下。 谢谢 Ajax脚本 <script> function getUploadedFile(Sle) { $.ajax({ url: "/Privacy/GetUploadfileName", data: { "F

我必须使用Ajax从数据库中获取多列数据。当我选择下拉列表时,参数将在Ajax中传递给控制器,以获取所有值并显示在不同的文本框中。 我只能得到一列,但不能得到所有列。 请帮我解决这个问题。我的示例代码如下。 谢谢

Ajax脚本

<script>
function getUploadedFile(Sle) {
    $.ajax({
        url: "/Privacy/GetUploadfileName",
        data: { "FileID": Sle.value },
        type: "Post",
        dataType: "text",
        success: function (data) {
            console.log(data);
            $("#uploadedFile1").val(data);                
        },
        error: function (data) {
            alert(data);
        }
    });
}
控制器

    public IActionResult Privacy()
    {
        ViewBag.semester = new SelectList(_context.Semester, "SemesterNo", "SemesterId");
        return View();
    }
    public IActionResult GetUploadfileName(string FileID)
    {
        //get the filename result accoding to ID
        var result = _context.Courses.Where(x => x.SemesterNumber == FileID).First();
        return Ok(result.CourseID);
    }
观点

@model MVCInsertDB.Models.Course
学期
@Html.DropDownListFor(model=>model.SemesterNumber,ViewBag.terms作为SelectList,“--Select Item--”,new{id=“uploadedFile”,@class=“js Select u-Select--v1 Select w-10”,@onChange=“getUploadedFile(this)”})

课程Id
课程名称
课程学分

根据您的描述,我建议您可以尝试直接从MVC控制器返回jsonresult,并修改ajax以接收json响应

更多详细信息,请参考以下代码:

阿贾克斯:

控制器:

    public JsonResult GetUploadfileName(string FileID)
    {
        //get the filename result accoding to ID
        var result = _context.Courses.Where(x => x.SemesterNumber == FileID).First();
         return Json(result);
    }

你的意思是想在div中显示课程模型的所有属性值吗?谢谢你的快速回复。我已经尝试过了,但是一些参数传递空值,而不是所选的下拉项。找不到原因。关于某些参数传递空值,您的意思是什么?你的意思是一些下拉项被传递到后端,而一些没有传递到后端吗?对不起。实际上,数据:{“FileID”:Sle.value}在Ajax中发送空值。如果使用
{“FileID”:Sle.value}
,则应将contentType设置为
'application/x-www-form-urlencoded',
,然后它将正常工作。查看我的更新ajax代码。您能分享错误的详细信息吗?此外,我建议您可以尝试使用F12开发工具的网络选项卡来查看服务器返回的响应。
@model MVCInsertDB.Models.Course
<form method="post" asp-controller="Privacy" asp-action="Privacy" role="form">
<div class="form-group">
    <label>Semester</label>

    @Html.DropDownListFor(model => model.SemesterNumber, ViewBag.semester as SelectList, "--Select Item--", new { id = "uploadedFile", @class = "js-select u-select--v1-select w-10", @onChange = "getUploadedFile(this)" })
</div>
<br />
<label>Course Id</label>
<input id="uploadedFile2" type="text" class="form-control" />
<br />
<label>Course Name</label>
<input id="uploadedFile3" type="text" class="form-control" />
<br />
<label>Course Credit</label>
<input id="uploadedFile4" type="text" class="form-control" />
</form>
        function getUploadedFile(Sle) {
            $.ajax({
                url: "/Home/GetUploadfileName",
                data: { "FileID" : Sle.value },
                type: "Post",
                contentType: 'application/x-www-form-urlencoded',
                dataType: 'json',
                success: function (data) {
                    $("#uploadedFile2").val(data.courseID);
                    $("#uploadedFile3").val(data.title);
                    $("#uploadedFile4").val(data.credits);
                },
                error: function (data) {
                    alert(data);
                }
            });
        }
    public JsonResult GetUploadfileName(string FileID)
    {
        //get the filename result accoding to ID
        var result = _context.Courses.Where(x => x.SemesterNumber == FileID).First();
         return Json(result);
    }