0

モデル オブジェクトの作成ページを作成しようとしています。c# で asp.net mvc を使用しています。私のプロジェクトでは、本を持つ図書館アプリケーションを作成しようとしています。写真を持つアプリケーションから本を追加できます。だから私の作成コントローラーはこのように、

 [HttpPost]
    public ActionResult Create([Bind(Exclude = "id,bringBack,borrower,isBorrowed")]Book bookToCreate, HttpPostedFileBase picture1)
    {
        try
        {
            if (picture1.ContentLength > 0)
            {
                var fileName = Path.GetFileName(picture1.FileName);
                var path = Path.Combine(Server.MapPath("~/App_Data/pictures"), fileName);
                picture1.SaveAs(path);
            }

            // TODO: Add insert logic here
            _entities.AddToLibrary(bookToCreate);
            _entities.SaveChanges();

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

そして私の見解はこうです。

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcApplication2.Models.Book>" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Create</title>
</head>
<body>
<% using (Html.BeginForm(new { enctype = "multipart/form-data" }))
   {%>
    <%: Html.ValidationSummary(true) %>

    <fieldset>
        <legend>Fields</legend>

        <div class="editor-label">
            <%: Html.LabelFor(model => model.name) %>
        </div>
        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.name) %>
            <%: Html.ValidationMessageFor(model => model.name) %>
        </div>

        <div class="editor-label">
            <%: Html.LabelFor(model => model.author) %>
        </div>
        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.author) %>
            <%: Html.ValidationMessageFor(model => model.author) %>
        </div>

        <div class="editor-label">
            <%: Html.LabelFor(model => model.picture) %>
        </div>
        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.picture) %>
            <%: Html.ValidationMessageFor(model => model.picture) %>
        </div>
        <input type='file' name='picture1' id='picture1' />
        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>

<% } %>

<div>
    <%: Html.ActionLink("Back to List", "Index") %>
</div>

いろいろ試しましたが、ファイルをアップロードできませんでした。私に何ができる?

4

2 に答える 2

0

あなたの本のモデルでは、財産でなければなりません

HttpPostedFileBase picture1
于 2012-06-05T10:21:32.933 に答える
0

Request代わりにから投稿されたファイルを取得してみてください。

var picture1 = this.Request.Files["picture1"];
于 2012-06-04T21:25:44.347 に答える