Ajax 通过选择下拉列表ASP.NET Core MVC从数据库填充多个文本框
我必须使用Ajax从数据库中获取多列数据。当我选择下拉列表时,参数将在Ajax中传递给控制器,以获取所有值并显示在不同的文本框中。 我只能得到一列,但不能得到所有列。 请帮我解决这个问题。我的示例代码如下。 谢谢 Ajax脚本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
<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);
}