#c# #asp.net-mvc #asp.net-mvc-4 #entity
#c# #asp.net-mvc #asp.net-mvc-4 #сущность
Вопрос:
Привет, ребята.Я пытаюсь получить 3 изображения от пользователя, поэтому моя модель выглядит примерно так :
namespace DomainClass
{
using System;
using System.Collections.Generic;
using System.Web.Http;
public partial class CompanyMember
{
public CompanyMember()
{
this.Proficiencies = new HashSet<Proficiency>();
}
[DisplayName(" شناسه")]
public int Id { get; set; }
[DisplayName("عکس")]
public string ImageUrl { get; set; }
[DisplayName("کارت ملی")]
public string IntCartCopy { get; set; }
[DisplayName("شناسنامه")]
public string IdentityCartCopy { get; set; }
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public HttpPostedFileBase ImgFileImageUrl { get; set; }
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public HttpPostedFileBase ImgFileIntCartCopy { get; set; }
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public HttpPostedFileBase ImgFileIdentityCartCopy { get; set; }
public virtual Company Company { get; set; }
public virtual ICollection<Proficiency> Proficiencies { get; set; }
}
Итак, на мой взгляд, чтобы получить представление, я создаю 3 входных тега следующим образом :
@model DomainClass.CompanyMember
@{
ViewBag.Title = "اضافه کردن اعضاء";
}
@using (Html.BeginForm("Create", "CompanyMember", FormMethod.Post,
new { id = "form", enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<div class="wrapper-left">
<div class="wrapper-top-addCompany">
اعضاء
<div style="float: left; padding-left: 20px;">
<div class="divider"></div>
<div class="buttonPossion">
<input type="submit" value="ذخیره اطلاعات" Class="buttonSave" />
@Html.ActionLink("بازگشت", "index", new {companyId = ViewBag.companyId}, new {@class = "buttonBlueLink"})
</div>
<div class="divider"></div>
</div>
</div>
@Html.HiddenFor(model => model.CompanyId)
<div class="wrapper">
<div class="wrapper-Member" style="padding-bottom: 30px; margin-bottom: 5px; width: 98%">
<h2>
اضافه کردن اعضاء جدید
</h2><br/><br/><br/>
<div class="editor-label">
@Html.LabelFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Family) @Html.ValidationMessageFor(model => model.Family)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Family)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.EducationLevel) @Html.ValidationMessageFor(model => model.EducationLevel)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.EducationLevel)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.University) @Html.ValidationMessageFor(model => model.University)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.University)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Mobile) @Html.ValidationMessageFor(model => model.Mobile)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Mobile)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Telephone) @Html.ValidationMessageFor(model => model.Telephone)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Telephone)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Address) @Html.ValidationMessageFor(model => model.Address)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Address)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Email) @Html.ValidationMessageFor(model => model.Email)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Email)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.InternationalCode) @Html.ValidationMessageFor(model => model.InternationalCode)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.InternationalCode)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Field) @Html.ValidationMessageFor(model => model.Field)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Field)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Job) @Html.ValidationMessageFor(model => model.Job)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Job)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Share) @Html.ValidationMessageFor(model => model.Share)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Share)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Password) @Html.ValidationMessageFor(model => model.Password)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Password)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.ImageUrl)
</div>
<div class="editor-field">
@Html.HiddenFor(model => model.ImageUrl)
<input id="imgProfile" type="file" name="ImgFileImageUrl"/>
</div>
<div class="editor-label">
@Html.LabelFor(model => model.IntCartCopy)
</div>
<div class="editor-field">
@Html.HiddenFor(model => model.IntCartCopy)
<input id="imgIntCartCopy" type="file" name="ImgFileIntCartCopy"/>
</div>
<div class="editor-label">
@Html.LabelFor(model => model.IdentityCartCopy)
</div>
<div class="editor-field">
@Html.HiddenFor(model => model.IdentityCartCopy)
<input id="imgIdentityCartCopy" type="file" name="ImgFileIdentityCartCopy"/>
</div>
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
но после отправки 3 столбцов HttpPostedFileBase возвращает null .в моем контроллере я проверил значение file, и все они равны нулю, почему?и мое условие if возвращает false
public ActionResult Create(CompanyMember companyMember)
{
if (companyMember.ImgFileImageUrl != null amp;amp; companyMember.ImgFileIntCartCopy!=null amp;amp; companyMember.ImgFileIdentityCartCopy!=null)
{
saving
}
}
С наилучшими пожеланиями
Комментарии:
1. покажите свой полный вид с формой
Ответ №1:
Опубликованные файлы доступны в
Request.Files
Вы должны прочитать их и сохранить в БД с помощью действия контроллера. Для этого используйте имя ввода в качестве запроса.Например, индекс таблицы файлов:
HttpPostedFileBase img = Request.Files["ImgFileIntCartCopy"];
if(img != null)
img.SaveAs(path img.FileName);