上传文件asp mvc

时间:2012-08-27 09:54:49

标签: asp.net asp.net-mvc asp.net-mvc-3

我想在asp .net mvc应用程序中上传文件。上传本身很容易,但我想上传其他详细信息。事实上,我正在开发一个项目管理工具,每个文件都应该对应一个任务,即每个用户都能够上传与他的一个任务相对应的文件。所以,我只想上传带有任务ID的文件,然后将文件名和任务ID保存在数据库中。 应该有一个下拉列表来完成任务。

1 个答案:

答案 0 :(得分:3)

根据我的理解,您希望上传包含其他详细信息的文件。首先,您必须开始创建一个包含HttpPostedFileBase的视图模型,以捕获上传的文件和其他属性以捕获其他详细信息。

public class UploadFileViewModel
{
   public HttpPostedFileBase File { get; set; }

   public int TaskId { get; set; }

   // other properties if any
}

基本上你应该有一个以UploadFileViewModel为参数的动作。

public ActionResult UploadFile(UploadFileViewModel model)
{
   ...
}

我建议您使用视图模型,因为您可以轻松应用验证。如果没有视图模型,你可以在行动中做这样的事情,

public ActionResult UploadFile(HttpPostedFileBase file, int taskId)
{
  ...
}

您的观点应该是这样的,

@model UploadFileViewModel

@using (Html.BeginForm("UploadFile", "Controller", FormMethod.Post, new { enctype = "multipart/form-data" }))
{

<div>
   <input type="file" name="file" />

   @Html.DropDownListFor() @* list the tasks *@

   <input type="submit" value="OK" />
</div>

}

如果您想了解有关上传文件的更多信息,请查看此博客post