如果用户选择搜索而不是手动输入(尝试获取一些干净的数据),我会在页面中内置搜索功能,该功能会触及API以获取项目列表。我将所述表的第一列设置为调用JavaScript函数onclick。该功能看起来与此类似:
function loadDataFromTable(fname, lname, mname, stn, grade, school) {
$('#StudentFirstName').val(fname);
$('#StudentLastName').val(lname);
if (mname !== "undefined") {
$('#StudentMiddleName').val(mname);
}
else {
$('#StudentMiddleName').val('');
}
$('#StudentNumber').val(stn);
$('#Grade').val(grade);
$('#School').val(school);
return false;
}
关联的HTML元素都是ASP.NET Core Razor View输入元素。它们看起来像这样:
<div class="form-group">
<label class="col-md-3 control-label">Last Name</label>
<div class="col-md-9">
<input type="text" asp-for="StudentLastName" class="form-control" />
<span asp-validation-for="StudentLastName" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">STN</label>
<div class="col-md-9">
<input type="text" asp-for="StudentNumber" class="form-control" />
<span asp-validation-for="StudentNumber" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">Grade</label>
<div class="col-md-9">
<input type="text" asp-for="Grade" class="form-control" />
<span asp-validation-for="Grade" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="School" class="col-md-3 control-label"></label>
<div class="col-md-9">
<select asp-for="School" asp-items="ViewBag.SchoolList" class="form-control"></select>
<span asp-validation-for="School" class="text-danger"></span>
</div>
</div>
现在,如果用户点击表中的一个链接,则所有值都会正确传递到函数中,并且名字,姓氏,中间名和STN的所有值都会正确更新视图。成绩和学校不会在视图上更新,但它们的值属性会更新。当我在数据填充后提交表单时,正确的值将传递给我的控制器。
我无法弄清楚为何不在视图中填充成绩和学校值。对于这两个来说唯一不同的是在模型中它们是可空的整数,而其他字段是字符串。
我尝试过.attr(&#39;值&#39;,等级),。text(等级)和.val(等级)的混合物,但它们都没有工作。我可以验证是否正在选择正确的元素,因为如果输出$(&#39;#Grade&#39;),我会得到输入对象。