我正在尝试整理一个用户可以上传文件的页面,然后将其转到数据库。
我正在学习一个教程,到目前为止我的控制器方法看起来像这样:
public ActionResult Index()
{
ViewData["Message"] = "File Upload";
foreach (string upload in Request.Files)
{
if (!Request.Files[upload].HasFile()) continue;
string path = AppDomain.CurrentDomain.BaseDirectory + "uploads/";
string filename = Path.GetFileName(Request.Files[upload].FileName);
Request.Files[upload].SaveAs(Path.Combine(path, filename));
}
return View();
}
以下是我的观点的示例:
<p>
<% using (Html.BeginForm("", "home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{ %>
<input type="file" name="FileUpload1" /><br />
<input type="submit" name="Submit" id="Submit" value="Upload" />
<% } %>
</p>
我目前遇到两个编译错误:
- 'System.Web.HttpPostedFileBase'不包含的定义 'HasFile'并没有扩展方法 'HasFile'接受了第一个论点 类型 'System.Web.HttpPostedFileBase'可以 被发现(你错过了使用 指令或程序集引用?)
- 当前上下文中不存在名称“路径”
醇>
这也是我在控制器中用于名称空间的示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.UI.WebControls;
如果有人能指出我正确的方向来解决这个错误,我将非常感激。
答案 0 :(得分:3)
我想我找到了你跟随的tutorial?
如果是这样 - 检查作者为HasFile()方法编写自定义扩展方法的部分。它不是框架的一部分,所以你也需要创建它。
第二个问题是Path是System.IO命名空间的一部分,所以你也需要添加它。