这是我的代码 -
//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的方法,该方法应接受此文件。
我错过了什么?
答案 0 :(得分:1)
似乎没有一个操作方法来处理POST动词请求。动作方法的默认动词(如果未指定)是GET。虽然您的代码示例中有一个操作方法,但[HttpPost]属性已被注释掉。这将使该方法仅可用于GET请求 - 否则将获得404(无法显示页面)。