MVC 4 RegisterModel包括Profile Image

时间:2013-08-31 15:19:52

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

在我的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

2 个答案:

答案 0 :(得分:0)

据我所知,idname更强大,因此您的id属性应该是“file”而不是“register-avatar”。

视图中的代码应为:

<input type="file" id="File" name="File" />

答案 1 :(得分:0)

表单的编码类型缺失 - multipart/form-data

进一步解释here