Загрузка изображения в ASP.NET MVC с использованием EDM - PullRequest
0 голосов
/ 09 июля 2009

Я новичок в использовании ASP.NET MVC, и у меня возникли некоторые трудности с ним. Я создал свою модель, используя Entity Data Model только для записи.

Моя проблема в том, что я пытаюсь вставить изображение на сервер MS SQL 2008, используя мою новую страницу ASP.NET. Изображение является частью информации, которую мне нужно хранить о сотрудниках в моей базе данных. В моем домашнем файле HomeController.cs я щелкнул правой кнопкой мыши по методу Create и решил создать представление, что он и сделал. Однако загрузка изображения не была частью автоматически сгенерированного кода.

В представлении «Создать» есть несколько текстовых полей, соответствующих столбцам моей таблицы, и одна кнопка отправки, которая каким-то образом создает новую строку в моей базе данных. Я думал, что кнопка будет запускать код для другого метода Create в файле HomeController.cs, который принимает Employee в качестве параметра, но я предполагаю, что моя проблема заключается в том, что я не знаю, что происходит между мной, нажав кнопку Submit и создание объекта Employee для метода Create.

Для справки вот код, с которым я работаю. Первый код для Homecontroller.cs, а затем код для Create.aspx (обратите внимание, что переменная _db является копией моей модели данных сущностей):

public ActionResult Create()
{
    return View();
}

[AcceptVerbs(HttpVerbs.Post)]  
public ActionResult Create([Bind(Exclude = "employeeNumber")] Employee employeeToCreate)  
{  
    try  
    {  
        _db.AddToEmployee(employeeToCreate);  
        _db.SaveChanges();  

        return RedirectToAction("Index");
    }
    catch
    {
        return View();
    }
}

Я не знаю, почему вышеприведенный код работает именно так. Я также не знаю почему, но код ниже не показывает первые несколько строк правильно, поэтому я удалил несколько <> вокруг кода C # и кода asp, чтобы код стал видимым. ( FIXED )

<Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<LaunakerfiASP_MVC.Models.Employee>"
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Create
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2>Create</h2>
    <%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>
    <% using (Html.BeginForm()) { %>
    <fieldset>
        <legend>Fields</legend>          
        <p>
            <label for="name">name:</label>
            <%= Html.TextBox("name")%>
            <%= Html.ValidationMessage("name", "*")%>
        </p>
        <p>
            <label for="email">email:</label>
            <%= Html.TextBox("email")%>
            <%= Html.ValidationMessage("email", "*")%>
        </p>
        <p>
            <label for="department">department:</label>
            <%= Html.TextBox("department")%>
            <%= Html.ValidationMessage("department", "*")%>
        </p>
        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>    
    <% } %>
    <div>
        <%=Html.ActionLink("Back to List", "Index") %>
    </div>
</asp:Content>

Итак, я хотел бы добавить элемент в представление Create.aspx, который позволит мне загрузить изображение в столбец «изображение» в таблице «Сотрудник».

1 Ответ

1 голос
/ 10 июля 2009

В вашем действии контроллера вы можете получить доступ к загруженным файлам через Request.Files

Вот несколько ссылок о загрузке файлов в ASP.NET MVC:

http://www.hanselman.com/blog/ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCIncludingTestsAndMocks.aspx

http://aspzone.com/tech/asp-net-mvc-file-upload/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...