2011-11-09 91 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字段爲空,但所有其他字段正確設置。如果我將CustomFile屬性更改爲字符串而不是HttpPostedFile,則會正確獲取文件名(例如,「dog.jpg」)。有什麼方法可以正確獲取完整的HttpPostedFile文件嗎?

由於提前, Tamash

回答

1

嘗試更換HttpPostedFile通過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屬性仍然爲空。生成的HTML爲:



<輸入名稱= 「CustomFile」 類型= 「文件」 值= 「瀏覽」/>

+0

@TamasIonut,好像你有2個嵌套表單,這是無效的HTML。你將不得不刪除外部表格,只留下具有'enctype =「multipart/form-data」'屬性的表單。 –

+0

非常感謝。我有一個局部視圖,它自己聲明瞭一個表單,並將其嵌入到我的視圖中,轉換爲另一種形式(不知道太多關於HTML我猜;))) –

0

您可以使用類似:

<輸入名稱= 「CustomFile」 類型= 「文件」 VALUE = 「瀏覽」/>

+0

我已經做到了,但該模型的CustomFile仍然是空。 –