だから私はajaxファイルのアップロードを部分的に(Jquery Formプラグインを使用して)持っています、それは完全に機能していますが、ファイルのアップロード後にモデル値を更新するのかわかりません
<div>
@Html.Partial("PhotoUpload", Model.Place)
</div>
ここでは、パーシャルと呼び、モデルの一部を提供しています。
@model PlaceMap.DAL.Entities.Place
@using (Html.BeginForm("PhotoUpload", "Place", FormMethod.Post, new { @id = "photoUpload", enctype = "multipart/form-data" }))
{
{
@Html.ValidationSummary(true, "Image upload was unsuccessful")
@Html.HiddenFor(m => m.Photo)
<input type="file" id="file" name="file"/>
<input type="submit" id="sbm" />
}
}
これは、アップロード用の部分的な受け入れモデルとフォームのビューコードです
var options = {
url: "/Place/PhotoUpload",
dataType: "json",
clearForm: true,
resetForm: true,
success: showResponse
};
function showResponse(responseText, statusText, xhr, $form)
{
$('#photo').append('<img src="/Images/Places/' + responseText.Photo + '" />');
}
$('#photoUpload').submit(function ()
{
$('#photoUpload').ajaxSubmit(options);
return false;
});
プラグインのJavascriptコード
[Authorize]
[HttpPost]
public ActionResult PhotoUpload(string Photo, HttpPostedFileBase file)
{
try
{
using (var ms = new MemoryStream())
{
//some logic here
return Json(new { Photo = filename });
}
}
catch (ArgumentException)
{
}
return PartialView();
}
コントローラのアクションコード。ファイル名を返し、js関数 "showResponse"に移動し、画像をdivに追加します。すべて完璧に動作しますが、@ Modelにファイル名を書き込む必要があります。この部分の写真で、その方法がわかりません。助言がありますか?