2011-11-09 2 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" })) 

{%를>는 CustomFile 필드가 비어있는 내 컨트롤러 액션에 도달하지만, 다른 모든 필드는

<%: 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 대신 string으로 변경하면 파일 이름 (예 : "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; } 
} 

또한 사용자 정의 FileBoxFor 사용중인 도우미가 해당 파일 필드의 올바른 이름과 유형을 생성합니다.

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

시도해 보았습니다. CustomFile 속성은 여전히 ​​null입니다. 생성 된 HTML은 다음과 같습니다.

<텍스트 영역 COLS = "20"ID = "RegionName이 'NAME ="RegionName이 "행 ="2 ">

+0

@TamasIonut, 잘못된 HTML 중첩 된 양식이 2 개있는 것 같습니다. 외부 양식을 제거하고'enctype = "multipart/form-data"속성을 가진 양식 만 남겨 두어야합니다. –

+0

고마워. 나는 폼 자체를 선언하고 또 다른 형태로 내 뷰에 포함 된 부분 뷰를 가졌습니다. (나는 HTML에 대해 너무 많이 알지는 못한다.))) –

0
당신은 같은 것을 사용할 수 있습니다

= "CustomFile"유형 = "파일"값 = />

+0

이 작업을 수행했지만 모델의 CustomFile은 여전히 ​​null입니다. –