使用MVC4上传文件

时间:2013-12-09 20:42:46

标签: c# asp.net-mvc-4

这是我的代码 -

//in Profile.cshtml
@{
    ViewBag.Title = "Profile";
}

<h2>Profile</h2>

@using (Html.BeginForm("Upload", "Profile", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="file" />
    <input type="submit" value="OK" />
}

在我的控制器(ProfileController.cs)中,我有 -

namespace MvcApplication1.Controllers
{
    public class ProfileController : Controller
    {

    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Profile() {
        return View();
    }

    [HttpPost]
    public ActionResult Upload(HttpPostedFileBase file) {
        if (file.ContentLength > 0) {
            var fileName = Path.GetFileName(file.FileName);
            var path = Path.Combine(Server.MapPath("~/Media/uploads"), fileName);
            file.SaveAs(path);
        }
        return RedirectToAction("Profile");
    }

}

}

但每次我点击“确定”上传文件,我都会收到此错误 -     localhost:12345 /个人资料/上传 - Internet Explorer无法显示此网页。

我的配置文件控制器中有一个名为Upload的方法,该方法应接受此文件。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

似乎没有一个操作方法来处理POST动词请求。动作方法的默认动词(如果未指定)是GET。虽然您的代码示例中有一个操作方法,但[HttpPost]属性已被注释掉。这将使该方法可用于GET请求 - 否则将获得404(无法显示页面)。