首页 > 解决方案 > Asp.net mvc 中的文件上传问题

问题描述

我添加了 HTML 输入类型文件运行项目后,单击输入文件以选择我的文件。当我选择文件并在停止我的项目后单击确定时。问题是什么?

@using (Html.BeginForm("Update", "User", FormMethod.Post, new { enctype = "multipart/form-data" }))
                {
                    <div class="col-sm-3">
                        <div class="profile_img">
                            <div id="crop-avatar">
                                <img class="img-responsive avatar-view" width="250" height="150" src="~/Styles/images/@Model.User.Image" alt="Avatar" title="Change the avatar">
                            </div>
                        </div>
                        <div class="form-group">
                            <input type="file" name="file" id="file1" />
                        </div>
                    </div>
                    <div class="col-sm-8 form-horizontal form-label-left">
                        <div class="form-group">
                            @Html.LabelFor(model => model.User.FirstName, new { @class = "control-label col-md-3 col-sm-3 col-xs-12" })
                            <div class="col-md-8 col-sm-6 col-xs-12">
                                @Html.TextBoxFor(model => model.User.FirstName, new { @class = "form-control col-md-7 col-xs-12" })
                            </div>
                        </div>
                        <div class="form-group">
                            @Html.LabelFor(model => model.User.LastName, new { @class = "control-label col-md-3 col-sm-3 col-xs-12" })
                            <div class="col-md-8 col-sm-6 col-xs-12">
                                @Html.TextBoxFor(model => model.User.LastName, new { @class = "form-control col-md-7 col-xs-12" })
                            </div>
                        </div>
                        <div class="form-group">
                            @Html.LabelFor(model => model.User.MiddleName, new { @class = "control-label col-md-3 col-sm-3 col-xs-12" })
                            <div class="col-md-8 col-sm-6 col-xs-12">
                                @Html.TextBoxFor(model => model.User.MiddleName, new { @class = "form-control col-md-7 col-xs-12" })
                            </div>
                        </div>
                        <div class="form-group">
                            @Html.LabelFor(model => model.User.UserName, new { @class = "control-label col-md-3 col-sm-3 col-xs-12" })
                            <div class="col-md-8 col-sm-6 col-xs-12">
                                @Html.TextBoxFor(model => model.User.UserName, new { @class = "form-control col-md-7 col-xs-12" })
                            </div>
                        </div>
                        <div class="form-group">
                            @Html.LabelFor(model => model.User.Email, new { @class = "control-label col-md-3 col-sm-3 col-xs-12" })
                            <div class="col-md-8 col-sm-6 col-xs-12">
                                @Html.TextBoxFor(model => model.User.Email, new { @class = "form-control col-md-7 col-xs-12" })
                            </div>
                        </div>
                        <div class="form-group">
                            @Html.LabelFor(model => model.User.Phone, new { @class = "control-label col-md-3 col-sm-3 col-xs-12" })
                            <div class="col-md-8 col-sm-6 col-xs-12">
                                @Html.TextBoxFor(model => model.User.Phone, new { @class = "form-control col-md-7 col-xs-12" })
                            </div>
                        </div>
                        <div class="form-group">
                            @Html.LabelFor(model => model.User.RoleId, new { @class = "control-label col-md-3 col-sm-3 col-xs-12" })
                            <div class="col-md-8 col-sm-6 col-xs-12">
                                @Html.DropDownListFor(model => model.User.RoleId, new SelectList(Model.Roles, "Id", "RoleName"), htmlAttributes: new { @class = "form-control col-md-7 col-xs-12", id = "roles" })
                            </div>
                        </div>
                        <div class="form-group">
                            @Html.LabelFor(model => model.User.Note, new { @class = "control-label col-md-3 col-sm-3 col-xs-12" })
                            <div class="col-md-8 col-sm-6 col-xs-12">
                                @Html.TextAreaFor(model => model.User.Note, new { @class = "form-control col-md-7 col-xs-12" , style = "min-height:100px !important" })
                            </div>
                        </div>
                    </div>
                    @Html.HiddenFor(m => m.User.Id)
                    @Html.HiddenFor(m => m.User.CreateDate)
                    @Html.HiddenFor(m => m.User.Status)
                    @Html.HiddenFor(m => m.User.Password)
                    <div class="col-sm-12 text-center" style="padding-bottom:3px">
                        <button class="btn btn-default">Yadda Saxla</button>
                        <a href="@Url.Action("Index","User")" class="btn btn-default">İmtina</a>
                    </div>
                }

用户控制器:

 public ActionResult Update(int userId)
    {
        UserViewModel employeeViewModel = new UserViewModel
        {
            User = _userService.GetUser(userId),
            Roles = _userService.GetRoles()
        };
        return View(employeeViewModel);
    }

        [HttpPost]
        public ActionResult Update(UserViewModel userViewModel)
        {
            User user = new User();
            user.Id = userViewModel.User.Id;
            user.RoleId = userViewModel.User.RoleId;
            user.UserName = userViewModel.User.UserName;
            user.FirstName = userViewModel.User.FirstName;
            user.LastName = userViewModel.User.LastName;
            user.MiddleName = userViewModel.User.MiddleName;
            user.Email = userViewModel.User.Email;
            user.Phone = userViewModel.User.Phone;
            user.Note = userViewModel.User.Note;
            user.Status = userViewModel.User.Status;
            if (userViewModel.User.Id == 0) user.CreateDate = DateTime.Now;
            else user.CreateDate = userViewModel.User.CreateDate;
            _userService.UpdateEmployee(user);
            return RedirectToAction("Index");
        }

可以从 Visual Studio 做参考问题吗?因为当我删除

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

本节项目运行良好。我认为问题出在我已经multipart/form-data为文件上传添加的代码中没有的另一个地方。请帮我解决这个错误。

标签: asp.net-mvcfile-upload

解决方案


推荐阅读