gpt4 book ai didi

javascript - MVC 使用上下文在数据库中查找记录

转载 作者:行者123 更新时间:2023-11-29 17:10:42 25 4
gpt4 key购买 nike

我的 Controller 中有一个 ActionResult,我正尝试使用 AJAX.get 调用它,它需要在数据库中查找记录并返回包含一些值的 Json:

[HttpGet]
public ActionResult GetBranchHead(int branchId = 0)// call this via jquery ajax
{
Staff branchHead = (Staff) (db.Staff.Where(o => o.BranchId == branchId &&
o.StaffTypeId == (int) Mars.Data.Enums.StaffType.BranchHead));

return Json(new { BranchHeadId = branchHead.StaffId,
BranchHeadName = branchHead.FirstName,
BranchHeadSurname = branchHead.Surname },
JsonRequestBehavior.AllowGet);
}

我不确定是否需要将它转换为我模型中的类型,或者这个数据库上下文是如何工作的。我应该使用查找吗? BranchId 和 StaffTypeId 都是外键。

现在我从我的 razor 页面上的 javascript 调用这个方法,如下所示:

<script type="text/javascript">
function CheckSelection() {
var BranchHeadName;
var BranchHeadSurname;
var branchId = $(this).val();
$.ajax({
url: "GetBranchHead?branchId",
type: "GET",
data: 1, //$(this).val(),
success: SetData(BranchHeadName, BranchHeadSurname),
dataType: JSON
});
};

function SetData(BranchHeadName, BranchHeadSurname) {
$("#BranchHeadDisplay").val(BranchHeadName + " " + BranchHeadSurname); //= BranchHeadName + " " + BranchHeadSurname;

};

$(document).ready(function () {
$("#SelectedBranch").change(CheckSelection);
CheckSelection.apply($("#SelectedBranch"));
});

每当下拉框中的选择发生变化时,这应该在我的 Controller 中调用 ActionResult 方法。 (我知道我仍然需要整理 ajax 函数,但我在测试数据中硬编码只是为了测试该方法)

我得到的是以下内部服务器错误:

Unable to cast object of type 'System.Data.Entity.Infrastructure.DbQuery`1[Mars.Data.Staff]' to type 'Mars.Data.Staff'.

这部分是我认为的问题:

Staff branchHead = (Staff) (db.Staff.Where(o => o.BranchId == branchId && o.StaffTypeId == (int) Mars.Data.Enums.StaffType.BranchHead));

最佳答案

将 .single() 添加到您的查询中以仅选择 1 条记录

关于javascript - MVC 使用上下文在数据库中查找记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21901034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com