我是 MVC 的新手,我有两个 Call Ajax,想在第二个调用中使用第一个调用的结果,但结果会返回两次。第二次调用 ajax 显示了第一次调用 ajax 中的一个结果的图像。这是我在控制器中的操作:
public ActionResult GetMaterialsPic(int id)
{
ViewBag.Pic = db.MaterialPictures.FirstOrDefault(p => p.EntityId == id)?.Id;
var picFiles = db.MaterialPictures.Where(p => p.EntityId == id).Select(p => new {p.EntityId,p.Id,p.SystemFile}).FirstOrDefault();
if (picFiles?.SystemFile != null)
ViewBag.PicFile = Convert.ToBase64String(picFiles.SystemFile);
return Json(picFiles,JsonRequestBehavior.AllowGet);
}
这是我的调用 ajax:
$.ajax({
url: 'GetMaterials',
type: "GET",
dataType: "JSON",
data: { id: radioselect },
success: function (materials) {
$("#MaterialId").html("");
$.each(materials, function (i, value) {
var Id=value.MaterialId;
$.ajax({
url: 'GetMaterialsPic',
type: "GET",
dataType: "JSON",
data: { id: Id },
success: function (picFiles, status, jqXhr) {
var data = '@(ViewBag.PicFile)';
$("#MaterialId").append(
$('<label class="radio-inline"><input type="radio" name="MaterialsId" value="' + value.Name + '" style="position: inherit;margin-left: 20px;" />' + value.Name + ' </label><img src="data:image/png;base64,' + data + '" style="display: inline;">'));
},
error: function (jqXhr, status, errorMsg) {
$("#MaterialId").append(
$('<label class="radio-inline"><input type="radio" name="MaterialsId" value="' + value.Name + '" style="position: inherit;margin-left: 20px;" />' + value.Name + ' </label> <img class="img-null" alt="عکس" style="display: inline;">'));
}
});
});
}
});