2011-04-06 2 views
1

일부 문서 세부 정보를 편집하고 두 개의 관련 이미지를 업로드 할 수있는 권한이 있습니다. 이보기를 내 컨트롤러에서 두 개의 다른 작업 (모든 양식 필드를 저장하는 작업과 파일 업로드 작업을 수행하는 작업)에 게시하고 싶습니다. 나는 하나의 기본 폼 주변의 형식과 파일 업로드가 내부 양식을 게시 제대로 일어나고있는 파일 uplaod 입력파일 업로드 후보기에서 양식 데이터 지속보기 동일한 게시물에서

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

    <% =Html.TextBoxFor(model => model.Document.Title) %> 
    <%= Html.TextBoxFor(model => model.Document.Description) %> 

    //and then another multipart form around the file upload part like this 
    <% using(Html.BeginForm("FileUpload", "Document", FormMethod.Post, new { enctype = "multipart/form-data" })) 
       <input type="file" id="fileUpload" name="iamge" size="30" /> 
       <input type="submit" value="Upload" /> 
        <% { %> 

<input type="submit" value="Save" /> 
<% } %> 

주변의 다중 양식을 가지고 있지만 컨트롤러가 기본보기에 compelte 모델을 반환하려면 다시 모든 양식 필드를 persisited. 보기는 강력하게 형식화되었으므로 내부 양식을 사용하여 파일 업로드 작업에 전체 모델을 게시 할 것이라고 생각했습니다. 내가 클릭 한 입력 요소에 관계없이 파일과 양식 데이터를 게시 할 하나의 멀티 파트 양식 만 가지고 도망 갈 수 있습니까? 이 좋은 습관입니다. 결국 내가 원하는 것은 파일 업로드 후 모든 양식 데이터가 편집 양식에 유지되도록하는 것입니다.

내부 데이터 파일 업로드 작업에 모델 데이터를 전달하려면 어떻게해야합니까?

답변

1

당신은 내 생각을하지 않아도됩니다. 바깥 폼을 가질 수 있습니다. 액션 인수를 설정하면 모델에서 구문 분석해야합니다. 그런 다음 파일이 게시되었는지 여부에 따라 다른 모델 요소를 유지하는 것과 같이 다른 논리 경로를 가질 수 있습니다.

그러면 게시 된 모델을 다시보기로 전달할 수 있습니다.

+0

단지 하나의 양식을 사용할 때 두 가지 동작에 하나의 양식을 게시하기 위해 두 개의 제출 단추를 사용하고 있다고 생각합니다. 아마 나는 그 경우 ActionLink를 사용해야한다. – Brendan

+0

그것은 당신의 구현에 따라 달라집니다 만, 나는 당신이 동일한 액션을 사용하고 파일이 선택되었거나 업로드되었는지 아닌지에 따라 논리를 바꿀 것을 제안합니다 ... – Timbo

+0

나는 모든 것을 처리함으로써 그것을 얻을 수있었습니다. 당신이 제안한 것처럼 하나의 양식으로 한 행동. 건배 @ 바지 – Brendan