我想在 asp .net mvc 应用程序中上传文件。上传本身很容易,但我想上传其他详细信息。事实上,我正在开发一种用于项目管理的工具,每个文件都应该对应一个任务,即每个用户都能够上传对应于他的一个任务的文件。所以,我只想上传带有任务ID的文件,然后将文件名和任务ID保存在数据库中。应该有一个任务的下拉列表。
user1600279
问问题
207 次
1 回答
3
据我了解,您想上传带有其他详细信息的文件。首先,您必须开始创建一个视图模型,该模型包含HttpPostedFileBase
捕获上传的文件和其他属性以捕获其他详细信息。
public class UploadFileViewModel
{
public HttpPostedFileBase File { get; set; }
public int TaskId { get; set; }
// other properties if any
}
基本上你应该有一个带有UploadFileViewModel
as 参数的动作。
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 回答