1

こんにちは、単純な画像をアップロードしようとしていますが、HttpPostedFileBase は常に null のままです。これは私のコードです。何が間違っているのかわかりません。

これは、デザイン ビューでの私のコードです。

<fieldset>
    <legend>PictureModel</legend>

    <div class="editor-label">
        <%: Html.LabelFor(model => model.PrivacyTypeID) %>
    </div>
    <div class="editor-field">
        <%: Html.DropDownList("PrivacyTypeID", null, new { name = "PrivacyTypeID", title = "Please select privacy type.", id = "PrivacyTypeID" }) %>
        <%: Html.ValidationMessageFor(model => model.PrivacyTypeID) %>
    </div>
    <div class="editor-label">
        <%: Html.LabelFor(model => model.File1) %>
    </div>
    <div class="editor-field">
        **<input type="file" name="File1" />**
        <%: Html.ValidationMessageFor(model => model.File1) %>
    </div>        
    <div class="editor-label">
        <%: Html.LabelFor(model => model.Description) %>
    </div>

そして、これが私のコントローラーのコードです:

public ActionResult AddPicture(Guid id, PictureModel モデル, HttpPostedFileBase File1) { try {

            if (ModelState.IsValid)
            {
                try
                {
                    Guid albumid = id;

                    if (File1 != null)
                    {
                        var physicalPath = Path.Combine(Server.MapPath("~/Gallery"), System.IO.Path.GetFileName(File1.FileName));
                        File1.SaveAs(physicalPath);
                        PicturesBL pictures = new PicturesBL();

何が問題なのか誰か教えてください??

4

3 に答える 3

1

何が問題なのか誰か教えてください??

あなたが示したコードに問題はありません。この問題は、通常の送信ではなく、AJAX 呼び出しを使用してこのフォームを送信していることが原因であると思われます。しかし、ご存じのとおり、AJAX を使用してファイルをアップロードすることはできません。そのため、コードが機能していません。AJAX を使用してファイルをアップロードする場合は、Uploadifyまたはなどのクライアント側プラグインを使用できますFine uploader。これは、新しいFile API. もちろん、これはそれをサポートする最新のブラウザーでのみ機能します。レガシー ブラウザをサポートする必要がある場合は、利用可能なクライアント サイド アップロード プラグインの一部が役立つ場合があります。

于 2013-04-19T10:35:33.247 に答える
1

これも私を夢中にさせていました。何時間も経ってから、

@Scripts.Render( "~/bundles/jquerymobile")

_Layout.cshtml で問題が発生していました。コメントアウトすると、アップロードが機能しました。

詳細については、 http://forum.jquery.com/topic/jquery-mobile-seems-to-clobber-ability-to-upload-files-via-formsを参照してください。

追加する

data_ajax="偽"
私のフォームへの属性は問題を解決しました。

于 2014-01-26T15:32:27.190 に答える
0

model.File1 タイプがそうではHttpPostedFileBase なくHttpPostedFile 、フォームにenctype = "multipart/form-data"属性が含まれていることを確認してください。

于 2015-11-23T22:28:39.870 に答える