2011-11-09 16 views
0

私は、次の問題に出くわした: 私はこのモデルASP MVCのアップロードヘルパー延長問題

public class Region 
{ 
    public int RegionID { get; set; } 
    public string RegionName { get; set; } 
    public HttpPostedFile CustomFile { get; set; } 
} 

を持っていると私はhereからカスタム拡張HTMLヘルパーメソッドを持っています。

<%using (Html.BeginForm("ModifyRegion", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) 

{%>

<%: Html.TextAreaFor(x => x.RegionID, Model.RegionID)%> 
    <br /> 
    <%: Html.TextAreaFor(x => x.RegionName, Model.RegionName)%> 
    <br /> 

<%: Html.FileBoxFor(x=>x.CustomFile, Model.CustomFile) %> 

<input type="submit" /> 

それは私のコントローラのアクションに達するとCustomFileフィールドが空であるが、他のすべてのフィールドは、次のとおりです。

は今ビューで、私は次のコードを持っています適切に設定されます。 HttpPostedFileの代わりにCustomFileプロパティをstringに変更すると、ファイル名(たとえば "dog.jpg")が正しく取得されます。完全なHttpPostedFileファイルを正しく取得する方法はありますか? HttpPostedFileを交換してみてください

<入力名= "CustomFile" タイプ= "ファイル" 値= "閲覧" />

答えて

1

:事前に

おかげで、 Tamash

+0

それを試してみてください。 CustomFileプロパティはまだnullです。生成されるHTMLは次のとおりです。


<入力名= "CustomFile" タイプ= "ファイル" 値=/"参照">

+0

@TamasIonut、無効なHTMLである2つのネストされたフォームがあるようです。外側のフォームを削除し、 'enctype =" multipart/form-data "属性を付けたフォームのみを残す必要があります。 –

+0

ありがとうございました。私は、フォーム自体を宣言し、別のフォームに自分のビューに埋め込まれた部分的なビューを持っていました。 (私が推測するHTMLについてあまり気にしないでください;)))) –

0

はあなたのようなものを使用することができますあなたのビューモデルでHttpPostedFileBaseによって:

public class Region 
{ 
    public int RegionID { get; set; } 
    public string RegionName { get; set; } 
    public HttpPostedFileBase CustomFile { get; set; } 
} 

また、カスタム使用しているヘルパーは、対応するファイルフィールドの正しい名前とタイプを生成します。

<input name="CustomFile" type="file" /> 
+0

私はそれを行っているが、モデルのCustomFileはまだnullです。 –