0
하위 ajax 양식은 AttachmentList보기 만 새로 고치는 대신 URL http://www.AppName/Email/Email/AttachmentList으로 리디렉션됩니다.하위 Ajax 양식에서보기를 리턴 할 때 하위 양식 URL로 리디렉션되는 대신 하위 양식 URL로 방향 전환
@foreach (var attachment in Model.Attachments)
{
<li>
@using (Ajax.BeginForm("RemoveAttachment", "Email", new { area = "Email" }, new FSIAjaxOptions { UpdateTargetId = "uploadedFilesSection" }, new { @id = "fromEditRole" + attachment.IdString }))
{
@Html.HiddenFor(model => attachment.IdString)
<span><a `enter code here`href="@Url.Content("~/File/GetFile")?folder=EmailAttachments&[email protected](attachment.AttachName)" target="_blank">@attachment.OriginalName</a></span>
<button type="submit" class="imageButton removeButton" title="Remove"></button>
}
</li>
}
여기 컨트롤러 조치
[Authorize]
[HttpPost]
public ActionResult RemoveAttachment(FormCollection fm)
{
EmailViewModel model = SessionData.GetCurrentObject<EmailViewModel>();
if ((fm.AllKeys.Contains("attachment.IdString")) && !string.IsNullOrEmpty(fm["attachment.IdString"]))
{
var attachment = model.Attachments.Where(x => x.IdString == fm["attachment.IdString"]).FirstOrDefault();
if (attachment != null)
{
FileHelper.RemoveFile("EmailAttachments","",attachment.AttachName);
Directory.Delete(WebConfig.SharedFileContainer + @"\EmailAttachments\" + attachment.IdString, true);
model.Attachments.Remove(attachment);
}
SessionData.SaveCurrentObject<EmailViewModel>(model);
}
return View("AttachmentList", "Email", new { area = "Email" });
}
public ActionResult AttachmentList()
{
EmailViewModel email = SessionData.GetCurrentObject<EmailViewModel>();
if (Request.IsAjaxRequest())
{
return PartialView(email);
}
else
{
return View("AttachmentList", "~/Views/Shared/Wrapper.cshtml", email);
}
}