【发布时间】:2020-01-07 05:56:08
【问题描述】:
我需要实现上传文件并保存与 orderItemID 相关的功能(我可以得到)。问题是没有获得 ID 或使用 ID 将文件保存到数据库。问题是将此 ID(我可以注销并查看是否存在)传递给控制器以供使用,如果不是,参数继续返回 NULL。
我最初尝试在上传文档时将 orderItemID 作为第二个参数传递,但这导致 HttpPostedFileBase 和 orderItemID 的 int 在我进入该方法后立即返回为 NULL。
我尝试通过 ViewBag 传递 orderItemID。功能,但它再次返回为 NULL
我现在正在尝试进行第二次单独的 AJAX 调用,它只是传入一个 int (orderItemID),然后在控制器中我可以尝试其他事情,但现在我只想看到参数不返回为 NULL当我在 orderController 中遇到断点时。
View:
$('#confirmUploadDiagrambtn').on("click", function () {
var currentID = document.getElementsByName("orderitemid")[0].value;
var form = $("#file")[0].files[0];
var datastring = new FormData();
datastring.append('file', form);
//Order Item ID is logged out as the expected 12121
console.log("OrderID: " + currentID);
//Errors out saying parameter is NULL
setOrderItemID(currentID);
uploadDocument(datastring);
})
function setOrderItemID(cOrderItemID) {
$.ajax({
type: "POST",
url: '/Order/SetCurrentOrderItemID',
data: cOrderItemID,
contentType: false,
processData: false,
success: function (response) {
console.log('Item Success');
console.log(response);
},
error: function (status) {
console.log('Item Error');
console.log(status);
}
})
}
Controller:
[HttpPost]
public void SetCurrentOrderItemID(int orderItemID)
{
//I can try whatever later, just need the param to not be NULL
ViewBag.cOrderItemID = orderItemID;
}
预期:orderItemID 将等于 12121
实际:NULL
错误:参数字典包含方法“Void SetCurrentOrderItemID(Int32)”的不可空类型“System.Int32”的参数“orderItemID”的空条目
【问题讨论】:
-
嗨,你能不能给你的 C# 控制器代码?
-
您确定 cOrderItemID 不为空吗?
-
C#控制器中的SetCurrentOrderItemID方法已包含在本帖中,还是需要更多?
-
@AfshinRashidi 是的,当它尝试在控制器中输入 SetCurrentOrderItemID 方法时,它会将参数恢复为 null
-
尝试在控制器中使用字符串参数进行测试并给我结果
标签: javascript c# html ajax viewbag