我正在使用 ASP .Net MVC 4.0 和 VS10。我是网络应用程序的新手。
我设计了一个带有 html razor View 的页面。下面是 Index.cshtml 的一些代码:
@{
ViewBag.Title = "BAP Automation";
}
@section featured {
<section class="featured">
<div class="content-wrapper">
<hgroup class="title">
<h1>@ViewBag.Title.</h1>
<h2>@ViewBag.Message</h2>
</hgroup>
<form action="Index">
<table> **//EDITED BELLOW**
<tr><form action="" method="post">
<td>Upload Excel File: </td>
<td><input type="text" name="NAMEtxtFileName"/></td>
<td><input type="button" value="Upload" id="IDbtnUpload" name="NAMEbtnUpload"/></td>
</form>
</tr>
<tr>
<td>Company Name: </td>
<td><input type="text" /></td>
<td></td>
</tr>
<tr>
<td></td>
<td align="right"><input type="submit" value="Process" /></td>
<td></td>
</tr>
</table>
</form>
</div>
</section>
}
我试图在 NAMEbtnUpload 的点击事件中上传一个 excel 文件。单击此按钮我们将进入此页面,只会打开一个文件上传对话框并选择文件,文件位置将显示在 NAMEtxtFileName 文本框中。
编辑 1:
我已经根据建议的代码编写了一些代码:
[HttpPost]
public ActionResult Index(HttpPostedFileBase NAMEbtnUpload)
{
if (NAMEbtnUpload.ContentLength > 0)
{
var fileName = Path.GetFileName(NAMEbtnUpload.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/Given Excel's"), fileName);
NAMEbtnUpload.SaveAs(path);
}
return RedirectToAction("Index");
}
但这显示了以下错误:
“/”应用程序中的服务器错误。
找不到资源。 描述:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下 URL 并确保其拼写正确。
请求的网址:/
最佳答案
尝试将“EncType”属性添加到您的表单。
@using (Html.BeginForm("ACTION", "CONTROLLER", FormMethod.Post, new { EncType="multipart/form-data"})){
//FORM MARKUP HERE
}
关于c# - 在 asp.net mvc 4 razor 中上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14217240/