我是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;">'));
}
});
});
}
});