1

在我的 MVC 4 应用程序中,当用户注册时,我希望他们可以选择图像并在注册的同时上传该图像 - 我只是在查看有关如何执行此操作的一些指导。

这是我用于注册的 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" />

但是,当我注册时,文件的值始终为空...

2013 年 4 月 11 日更新

我终于创建了一篇似乎没有涉及如何在 MVC 4 模板中使用通用 RegisterModel 上传个人资料图片的帖子。你可以在这里找到它 - MVC 4 Add Profile Image to RegisterModel

更新

下面评论中提到的问题是我没有设置 enctype。有关更多信息,请查看此处

4

2 回答 2

0

据我所知,id是比 更强的身份name,所以你的id属性应该是“文件”而不是“注册头像”。

视图内的代码应该是:

<input type="file" id="File" name="File" />
于 2013-08-31T15:31:47.777 回答
0

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

在这里进一步解释。

于 2013-08-31T19:03:25.267 回答