【问题标题】:Upload Image & Model ASP.NET MVC 4上传图像和模型 ASP.NET MVC 4
【发布时间】:2015-02-03 16:41:02
【问题描述】:

好的,我的照片一直返回 null, 我错过了什么?

我试过这个Uploading/Displaying Images in MVC 4

但我显然希望将图像作为模型的一部分。 型号

public class Client
    {
        public string Name{ get; set; }
        public string ClientId { get; set; }
        public HttpPostedFileBase Photo{ get; set; }
}

页面

@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true)
    <div class="form-horizontal" role="form">
                        <div class="form-group">
                            <label for="@Model.Name" class="col-sm-2 control-label">Name:</label>
                            <div class="col-sm-10">
                                <input name="ClientId" type="hidden" value="@Model.ClientId" id="ClientId" data-val="true" data-val-required=" required">
                                <input type="text" id="Name" value="" class="form-control" tabindex="1" placeholder="name" name="Name" required/>
                                @Html.ValidationMessageFor(model => model.Name)
                            </div>
                        </div>
                        <div class="form-group">
                            <label for="@Model.Name" class="col-sm-2 control-label">Image:</label>
                            <div class="col-sm-10">
                                @Html.TextBoxFor(m => m.Photo, new { type = "file" })
                            </div>
                        </div>
}

控制器

[HttpPost]
        [Authorize]
        public ActionResult New(ViewModels.Client client)
        {
if (client.Photo!= null)
            {
                var photo= new byte[client.Photo.ContentLength];
                client.Photo.InputStream.Read(photo, 0, client.Photo.ContentLength);

            }
}

【问题讨论】:

  • @EhsanSajjad 从技术上讲,这是不同的,因为省略了enctype 使其与众不同(我也回答了其他问题:))
  • @mattytommo 也回答了这个问题,你应该把它标记为重复..:)

标签: c# .net asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

您尚未在表单上设置enctype(确保将下面的Controller 更改为您的控制器的名称):

@using (Html.BeginForm("New", "Controller", FormMethod.Post, 
    new { enctype = "multipart/form-data" }))

【讨论】:

  • 打败我。即使使用 HTML 5,这一点也没有改变。
  • 谢谢,差不多了
  • @D-W 不用担心,很高兴我能提供帮助。我已经无数次遇到这个问题了,我立即认出了它:)
猜你喜欢
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多