私は基本イメージを持っており、C#Graphicsライブラリを使ってデータを追加し、イメージをバイト配列に変換して返します。Ajaxを使用してASP.NET MVC Controllerでファイルとして返されたイメージを更新するには?
私が持っているコントローラ:
public ActionResult DisplayDR(int drNum)
{
ER dr = DataUtility.getDR(drNum, errors);
return File(DrawDRUtility.getDRimageAsByteArray(dr), "image/png");
}
と正常に動作し、
<img id="drImage" src="@Url.Action("DisplayDR")" width="1110" height="484" alt="qr code" />
を私は動的に画像を更新し、運でアヤックスと試みたことができるようにする必要があります。
使用: 関数getNewDRImage(インスタンス){
var drNum = $(instance).data('val');
var src = '@Url.Action("DisplayDR", "Home", new { area = "Part" })';
$.ajax({
type: "GET",
url: src,
data: { drNum : drNum },
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function (err) {
var msg = "Client side error, " + err;
throwClientSideErrorMsg(msg)
},
success: function (data) {
$('#drImage').attr("src", data.image);
}
});
}
などのようなJSONを返すを
public JsonResult DisplayDMR(int drNum)
{
ER dr = DataUtility.getDR(drNum, errors);
return
Json(new { image = File(DrawDRUtility.getDRimageAsByteArray(dr), "image/png") }, JsonRequestBehavior.AllowGet);
}
は私に、このエラーを与える:
System.Web.HttpException (0x80004005): The controller for path '/[object Object]' was not found or does not implement IController.
私は正しくしませんか?
<img id="dmrImage" src="[object Object]" alt="qr code" height="484" width="1110">
だから私は、私はJSONデータをどうするかで混乱しています推測:これは、応答が何であるかであるとして、エラーが発生した理由を私は見AJAX呼び出しの後にソースを表示
更新、イメージを更新します。
は、応答をありがとうございました。残念ながら私はまだ混乱しています。だから、私は "物"をするために別の関数を呼び出すために私のajaxを変更し、その後に戻ります。成功したリターンでは、 を呼び出します。var src = '@ Url.Action( "DisplayDR"、 "Home"、new {area = "Part"})' + "?drNum =" + drNum;$( '#drImage')。attr( "src"、src);そして、DisplayDrメソッドは決して呼び出されません。私がやっていることのほんの一例をあなたに教えてもらえますか?私はajaxを呼び出す必要がありますが、Ajaxから返された画像を更新できることを期待しています。ありがとうございました。 – eaglei22
上記のようにCache-ControlをDisplayDrメソッドに追加しました。 – eaglei22
気にしないでください。私は、クエリー文字列の前後に '='の前後にスペースを追加していたため、より詳細な情報が明らかになりました。 var src = '@ Url.Action( "DisplayDR"、 "Home"、new {area = "Part"})' + "?drNum =" + drNumはトリックを行いました。 もう一度おねがいします! – eaglei22