在我的MVC 4应用程序中,当用户注册时我想让他们选择图像并在注册的同时上传它 - 我只是在寻找一些如何做到这一点的指导。 / p>
这是我注册的MVC模型 - 我添加了HttpPostedFileBase来保存正在发布的文件以及正在注册的新帐户的用户名和密码:
public class RegisterModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
public HttpPostedFileBase File { get; set; }
}
注册视图包含以下输入html:
<input id="register-avatar" type="file" name="file" />
但是,当我注册时,文件的值始终为null ...
更新04-11-2013
我最后创建了一篇文章,似乎没有涉及如何在MVC 4模板中包含通用RegisterModel的配置文件图像上传。你可以在这里找到它 - MVC 4 Add Profile Image to RegisterModel
更新
下面评论中提到的问题是我没有设置enctype。有关详细信息,请查看here
答案 0 :(得分:0)
据我所知,id
比name
更强大,因此您的id
属性应该是“file”而不是“register-avatar”。
视图中的代码应为:
<input type="file" id="File" name="File" />
答案 1 :(得分:0)
表单的编码类型缺失 - multipart/form-data
。
进一步解释here。