我想在应用程序中使用Ajax.BeginForm
上传图片。
当前HttpPostedFileBase file
正在获得价值0
。有人请在这里引导我。
我尝试了此代码,但文件未上传。
不胜感激,如果有人可以为此提供一些解决方案。如果我使用@ Html.BeginForm,则可以使用,但我想使用@ Ajax.BeginForm。
型号
public class ClsUpload
{
public string FilePath { get; set; }
}
控制器
public ActionResult Edit(ClsUpload model,HttpPostedFileBase file)
{
if (Request.Files.Count > 0)
{
file = Request.Files[0];
if (file != null && file.ContentLength > 0)
{
string fileName = Path.GetFileName(file.FileName);
string path = Path.Combine(Server.MapPath("/Content/Images/"), fileName);
file.SaveAs(path);
model.FilePath = path;
}
}
try
{
UploadDetials details = new UploadDetials();
details.UpdateDetails(model);
return RedirectToAction("Index");
}
catch
{
return RedirectToAction("Index");
}
}
部分视图
@model XX.X.Models.File.ClsUpload
@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "partial", InsertionMode = InsertionMode.Replace }))
{
@Html.HiddenFor(model => model.FilePath)
<input type="file" name="file" />
<img src=@Model.FilePath alt="Image" />
<input type="submit" value="Save" />
}
答案 0 :(得分:0)
您可以使用 FormMethod.Post,新的{enctype =“ multipart / form-data”})和 [AcceptVerbs(HttpVerbs.Post)] 更新代码跟随
@using (Html.BeginForm("ActionMethod1", "Controller", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ActionMethod1(HttpPostedFileBase pic)
{
}
答案 1 :(得分:0)
这很旧,但是我想展示如何使用Ajax.BeginForm()上传文件。基本上,过载将告诉您什么是可能的。我将重载用于:“字符串actionName,字符串controllerName,对象routeValues,AjaxOptions,ajaxOptions,对象htmlAttributes”。注意:我为“ routeValues”使用null。
这是一个代码示例:
@using (Ajax.BeginForm("UploadFile", "Home", null, new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "MyIDToUpdate", OnSuccess = "EditSuccessClearForm('IDToClear', '')", OnFailure = String.Format("NewGenericFailure(xhr, '{0}')", "#IDToPassThisFunction"), InsertionMode = InsertionMode.ReplaceWith }, new { enctype = "multipart/form-data", @id = "NewFileFormID" }))
{
@Html.AntiForgeryToken()
<div class="row">
<div class="col-sm-8 col-sm-offset-1">
@Html.TextBox("file", "", new { type = "file", accept = ".jpg, .jpeg, .png, .pdf", @id = fileID, onchange = VerifySizeOfFile })
</div>
<div class="col-sm-2">
<button type="submit" id="FileSubmitButton" class="btn btn-primary">Upload</button>
</div>
</div>
}