c# - 在 asp.net mvc 4 razor 中上传文件

标签 c# file-upload razor asp.net-mvc-4

我正在使用 ASP .Net MVC 4.0VS10。我是网络应用程序的新手。

我设计了一个带有 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/

相关文章:

c# - 我在这里做错了什么,使用 C# 的 XSLT 出现问题

javascript - dropzonejs 文件类型

java - 在使用文件类型输入时检索文件名

php - 上传多个文件 HTML5/PHP

c# - 如何使 Razor View 引擎使用 C# 6.0

c# - 水平显示数据库列数据

c# - 使用 dotnet run 命令运行时,带有 EF Core 的 .NET Core 控制台应用程序无法运行,抛出身份验证失败异常

C# Winforms 设计器无法打开,因为它无法在同一程序集中找到类型

asp.net-mvc - 如何使用 ASP.net MVC、 Entity Framework 和 Razor 对模型进行补丁更新

c# - LINQ 与 @Html.DropDownList 不同