使用EDM在ASP.NET MVC中上载图像

时间:2009-07-09 15:24:45

标签: c# asp.net-mvc

我是使用ASP.NET MVC的新手,我一直遇到一些困难。我使用实体数据模型创建了我的模型,仅用于记录。

我的问题是我正在尝试使用新的ASP.NET页面将图像插入到MS SQL 2008服务器中。该图像是我需要在我的数据库中存储有关Employees的信息的一部分。从我的HomeController.cs文件中,我右键单击Create方法,然后选择创建一个视图。但是,上传图像不是自动生成代码的一部分。

在“创建视图”中,有一些与我的表列对应的文本框和一个以某种方式创建新数据库行的提交按钮。我认为该按钮会运行HomeController.cs文件中另一个Create方法的代码,该方法将Employee作为参数,但我想我的问题在于我不知道在按下Submit按钮之间发生了什么并为Create方法创建一个Employee对象。

供参考,以下是我正在使用的代码.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视图中添加一个元素,让我将图像上传到'Employee'表中的'picture'列。

1 个答案:

答案 0 :(得分:1)

在您的控制器操作中,您可以通过Request.Files

访问上传的文件

以下是有关ASP.NET MVC中文件上传的一些链接:

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

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