2013-05-29 2 views
2

asp.net mvc 3 응용 프로그램에서 일하고 있는데이 문제가 있습니다. 강력한 유형의 면도기 뷰 내부에서 작업 중이므로 삭제/업로드 옵션이있는 간단한 이미지 갤러리를 작성합니다. 나는 업데이트와 삭제를위한 논리가 Html.BeginForm 안에있는 작업 예제를 따른다. 이강하게 입력 된 면도기보기에서 Html.BeginForm 값 전달

@model List<DataAccess.MCS_DocumentFields> 

@{ 
    ViewBag.Title = "Document"; 
} 
<div id="alabala"> 
<div id="drawForm"> 
@using (Html.BeginForm("UpdateDocument", "Forms", FormMethod.Post)) 
{ 
    <table border="1" id="drawDocument"> 
     <colgroup> 
      <col span="1" style="width: 10%;" /> 
      <col span="1" style="width: 40%;" /> 
      <col span="1" style="width: 25%;" /> 
      <col span="1" style="width: 25%;" /> 
     </colgroup> 
     @Html.Partial("_PartialHeader", Model) 
     @Html.Partial("_PartialDrawing", Model) 
     @Html.Partial("_PartialBody", Model) 
     @Html.Partial("_PartialFooter", Model) 

    </table> 
    if (ViewBag.Status == 1) 
    { 
     <button type="submit" id="submitDocument">Save</button> 
     <button style="float:right;" id="finalizeDocument">Finish</button> 
    } 
    else 
    { 
     @Html.ActionLink("Назад", "Index") 
    } 
} 
</div> 

<div id="imageContainer"> 
<div id="imageGallery" style="overflow: scroll"> 
<img src="file:\\10.3.12.237\MaritsaEast\upload_McsTemp\10005\docPicTest1.jpg" alt="docImg" style="width: 190px; height: auto"/> 
<a href=#>Delete</a> 
<img src="file:\\10.3.12.237\MaritsaEast\upload_McsTemp\10005\docPicTest2.jpg" alt="docImg" style="width: 190px; height: auto"/> 
<a href=#>Delete</a> 
<img src="file:\\10.3.12.237\MaritsaEast\upload_McsTemp\10005\docPicTest3.jpg" alt="docImg" style="width: 190px; height: auto"/> 
<a href=#>Delete</a> 
<img src="file:\\10.3.12.237\MaritsaEast\upload_McsTemp\10005\docPicTest4.jpg" alt="docImg" style="width: 190px; height: auto"/> 
<a href=#>Delete</a> 
<img src="file:\\10.3.12.237\MaritsaEast\upload_McsTemp\10005\docPicTest5.jpg" alt="docImg" style="width: 190px; height: auto"/> 
<a href=#>Delete</a> 
</div> 

@using (Html.BeginForm(new { Id = 1005}) 
{ 
    <input type="file" name="datafile" id="file" onchange="readURL(this);" /> 
    <input type="button" name="Button" value="Качи" id="UploadButton" onclick="fileUpload(this.form,'/forms/upload','upload'); return false;"/> 
    <div id="upload" style="display: inline-block;"> 
     <img id="blah" src="#" alt="your image" style="display:none;"/> 
    </div> 
} 
</div> 
</div> 

: @model List<DataAccess.MCS_DocumentFields>가에 대한 기록을 보유 여기 제거 코드 (나는이 문제와 관련이 생각하는 코드를 의미)의 일부와 전망이며,뿐만 아니라 내에서 또 다른 형태의 도우미가 동일한 문서이므로 달성하고자하는 것은 Model[0].Id을 매개 변수로 여기에 전달합니다 : @using (Html.BeginForm(new { Id = 1005}). 지금은 그것을 작동시키기 위해 코딩하는 것이 어렵지만이 포스트와 동시에 두 가지를 모두 달성하는 것이 어렵지 않은 경우 완벽 할 것입니다. 이것은 나의 FormsControllerUpload 방법의 시작이다 :

public void Upload() 
     { 
      WebImage UploadImage = WebImage.GetImageFromRequest(); 
      long DocumentID; 
      if (!long.TryParse(Request.Form["Id"], out DocumentID)) 
      { 
       return; 
      } 
      //and more code follows.. 

내가이 양식에서 값을 얻을 수있는 방법 중 하나입니다하지만 난 그것을 통과 할 수있는 방법을 찾을 수없는 것을 보았다. 그러나 다른 아이디어가 있다면 아무런 문제가 없습니다. 구현은 내가 결정할 사항에 달려 있습니다.

@using (Html.BeginForm("Upload", "Forms", FormMethod.Post)) 
{ 

    <input [email protected][0].DocumentId type="hidden" /> 

    <input type="file" name="datafile" id="file" onchange="readURL(this);" /> 
    <input type="button" name="Button" value="Качи" id="UploadButton" onclick="fileUpload(this.form,'/forms/upload','upload'); return false;"/> 
    <div id="upload" style="display: inline-block;"> 
     <img id="blah" src="#" alt="your image" style="display:none;"/> 
    </div> 
} 

다음 내 컨트롤러에이 변경 만든 :

+0

게시 방법에서 'ID'값을 가져올 수 없다는 것을 의미합니까? –

+0

값을 전달할 수 없습니다. 나는 그것을 내 컨트롤러에 전달하는 방법에 대해 확신하지 못한다. – Leron

답변

1

내가 찾은 해결책은 이것이다 아마

public ActionResult Upload(FormCollection collection) 
     { 
      WebImage UploadImage = WebImage.GetImageFromRequest(); 
      long documentID; 
      string finalImageName = null; 
      if (!long.TryParse(collection.AllKeys[0], out documentID)) 

하지 그것을 할 수있는 가장 좋은 방법이지만 하나를 그 지금까지 일해라.

0
<input type="hidden" name="Id" value="@Model[0].Id"/><!--Add this line--> 
if (ViewBag.Status == 1) 
{ 
    <button type="submit" id="submitDocument">Save</button> 
    <button style="float:right;" id="finalizeDocument">Finish</button> 
} 
else 
{ 
    @Html.ActionLink("Назад", "Index") 
} 
+0

글쎄, 유일한 문제는 다른 양식의 일부이며이 양식의 데이터 게시와 다른 양식 간의 관련성이 없다는 것입니다. 어쨌든 고마워. – Leron

관련 문제