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