1

mvc3 アプリケーションでは、Product に ImagePath1、ImagePath2、ImagePath3、ImagePath4、および ImagePath5 という文字列型のプロパティがあります。このルールで保存できる画像は 1 枚です。1 つの画像の場合、コントローラーで:

public ActionResult Create( Product product, HttpPostedFileBase file )
{
       var filename = Path.GetFileName( file.FileName );
       var path = Path.Combine( Server.MapPath( "~/UploadFolder/Products" ), filename );
       file.SaveAs( path );
       product.ImagePath1 = filename;
       db.Products.AddObject( product );
       db.SaveChanges();
}

私はファイルアップロードのサンプルを次のように持っています:

<script type="text/javascript">
    function HandleFileButtonClick() {
        document.frmUpload.myFile.click();
        document.frmUpload.txtFakeText.value = document.frmUpload.myFile.value;
    }
</script>
<form name="frmUpload">
<input type="file" name="myFile" style="display: none;">
<input type="text" name="txtFakeText" readonly="true">
<input type="button" onclick="HandleFileButtonClick();" value="Select" class="UploadButton">
</form>

しかし、製品の作成ビューではこれを適用できません。

@using ( Html.BeginForm( "Create", "Product", FormMethod.Post, new { enctype = "multipart/form-data" } ) )
{    
     @Html.TextBoxFor( m => m.Name, new { @class = "createInputStyle" } )
     ...                        
     ...// Images here...
     ...
     <input type="submit" value="Create" class="" />
}

ファイル アップロードのサンプルは外部で動作しますが、アップロード フォームを Create フォームに配置すると問題が発生します。より多くの画像を保存するには?下手な英語でごめんなさい。

4

1 に答える 1

2

Html.BeginForm() {} 内に以下を貼り付けます

<input type='file' name='ImagePath1' /> 
<input type='file' name='ImagePath2' /> 
<input type='file' name='ImagePath3' /> 
<input type='file' name='ImagePath4' /> 
<input type='file' name='ImagePath5' />

次に、コントローラーで、Request.Filesこれらの画像を保持する必要がある を確認します (画像がアップロードされている場合)。

于 2012-08-30T05:55:40.233 に答える