いくつかのフィールドを持つビューがあります。このビューでファイルをアップロードしたかったのです。フォーム送信メソッドを使用してアップロードすると、ビューのテキストボックスに入力されたデータが失われます.jquery ajax呼び出しからアップロードして、フィールドも一度に更新できるようにするか、投稿後にコントロールデータを維持するにはどうすればよいですか.
モデル
public class SView : ViewBase
{
public string Customer { get; set; }
public string ProjectNumb { get; set; }
public string Description { get; set; }
....
コントローラ
public ActionResult Index()
{
return View(ViewBase.Current.Model as SView);
}
public ActionResult Upload()
{
foreach (string inputTagName in Request.Files)
{
HttpPostedFileBase file = Request.Files[inputTagName];
if (file.ContentLength > 0)
{
string filePath = HttpContext.Server.MapPath("~/Images/") + Path.GetFileName(file.FileName);
file.SaveAs(filePath);
}
}
return RedirectToAction("Index");
}
意見
<tr class="evendiv">
<td>
<label class="labelfont">Customer</label>
</td>
<td>
<input id="tbxCust" type="text" value="@Model.Quotation.Customer" />
</td>
</tr>
<tr class="odddiv">
<td>
<label class="labelfont">Description</label>
</td>
<td>
<textarea id="tbxDesc" cols="20" rows="5" >@Model.Quotation.Description</textarea>
</td>
</tr>
<tr class="odddiv">
<td>
<label class="labelfont">Attach File(s)</label>
</td>
<td>
@using (Html.BeginForm("Upload", "Landing", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input id="attchfile1" type="file" />
<input id="Button1" type="submit" value="Upload" />
}
</td>
</tr>
<input id="btnReqHrs" type="button" value="Request Hours" onclick="javascript:requesthours()" />
<script type="text/javascript">
function requesthours() {
$.ajax({
type: 'POST',
url: Requesthours,
data: values,
dataType: "json",
error: function (xhr, ajaxOptions, thrownError) {
//ErrorMsg(thrownError);
$("#progressdiv").hide();
},
success: function () {
//$('#innerdiv').html(res);
$("#progressdiv").hide();
}
});
}