tho*_*lau 2 forms upload file-upload httppostedfilebase asp.net-mvc-4
我正在尝试将文件上传到目录.以下代码对我有用
[HttpPost]
public ActionResult Index(HttpPostedFileBase uploadFile)
{
//string path = @"C:\Users\thomas\Desktop";
if (uploadFile != null)
{
string filePath = Path.Combine(Server.MapPath("/files"), Path.GetFileName(uploadFile.FileName));
uploadFile.SaveAs(filePath);
}
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<form action="/Post/Index" method="post" enctype="multipart/form-data">
<label for="uploadFile">Upload file: </label>
<input name="uploadFile" id="uploadFile" type="file" />
<input value="uploadFile" type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试在一个函数中实现它,我创建一个消息,该消息由包含消息和项类的模型创建.当我提交表单时,模型将传递给我的savecontroller但在我的参数控制器中该文件为null.
HTML PAGE
@model GeoCitytroopers.Models.MessageItemModel
@{
ViewBag.Title = "Create";
}
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Event</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Message.MessagePicture)
</div>
<div>
<label for="uploadFile">Upload file: </label>
<input name="uploadFile" id="uploadFile" type="file" />
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Message.MessagePicture)
@Html.ValidationMessageFor(model => model.Message.MessagePicture)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Item.ItemTitle)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Item.ItemTitle)
@Html.ValidationMessageFor(model => model.Item.ItemTitle)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Item.ItemDescription)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Item.ItemDescription)
@Html.ValidationMessageFor(model => model.Item.ItemDescription)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
Run Code Online (Sandbox Code Playgroud)
[HttpPost]
public ActionResult Create(HttpPostedFileBase uploadFile, MessageItemModel ViewModel)
{
if (ModelState.IsValid)
{
Utility ut = new Utility();
Item viewItem = ViewModel.Item;
Message viewMessage = ViewModel.Message;
if (uploadFile != null)
{
string filePath = Path.Combine(Server.MapPath("/files"), Path.GetFileName(uploadFile.FileName));
uploadFile.SaveAs(filePath);
}
//ADD USER TO ITEM
viewItem = ut.AddUserToItem(viewItem);
//ADD ITEM
viewItem.ItemCreateddate = DateTime.Now;
//ADD DISTRICT TO ITEM
viewItem.DistrictID = ut.GetUserDistrict();
db.Items.Add(viewItem);
//ADD LINK
viewMessage.Item = viewItem;
db.Messages.Add(viewMessage);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(ViewModel);
}
Run Code Online (Sandbox Code Playgroud)
如何将上传文件传递给我的控制器?提前致谢!
你忘了设置正确enctype的表格.没有它,您无法上传文件:
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" })) {
...
}
Run Code Online (Sandbox Code Playgroud)
现在上传将起作用,您的uploadFile参数将不为空.
| 归档时间: |
|
| 查看次数: |
1794 次 |
| 最近记录: |