0

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

4

1 回答 1

3

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

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

   public int TaskId { get; set; }

   // other properties if any
}

基本上你应该有一个带有UploadFileViewModelas 参数的动作。

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>

}

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

于 2012-08-27T11:13:38.650 回答