2017-03-17 1 views
0

체크 박스 값과 텍스트 상자 값을 model.Here로 바인딩해야합니다. 모델을 사용하여 데이터를 검색하고 게시합니다. 몇 가지 옵션을 시도했지만 작동하지 않았습니다. 내가 컨트롤러에 체크 박스와 텍스트 상자에 값을 전송해야viewmodel에 확인란과 텍스트 상자를 바인딩하십시오.

@model IEnumerable<ALDS.Web.Areas.AR.Models.ReportViewModel> 

@{ 
    ViewBag.Title = "Standings"; 
} 


    <table class="table table-bordered"> 
     <thead> 
      <tr> 
       <th>LR Date</th> 
       <th>LR Line No</th> 
       <th>Issue</th> 
       <th>Correction Response</th> 
       <th>Remarks</th> 
       <th>Submission</th> 
      </tr> 
     </thead> 
     <tbody> 
      @foreach (var item in Model) 
      { 
       <tr> 
        <td> 
         @item.InsertDate 
        </td> 
        <td> 
         @item.LRLineID <a href="">View</a> 
        </td> 
        <td>Margin % incorrect</td> 
        <td><label for="cbox1">Corrected</label> <input type="checkbox" name="Corrected" value="@item.Status" />  <label for="cbox1">Neglected</label> <input type="checkbox" name="Neglected" value="@item.Status"/></td> 
        <td><input type="text" value="@item.Comments"/></td> 
        <td><a href="@Url.Action("Update","Error",Model)">Submit</a></td> 

        </tr> 
      } 
     </tbody> 
    </table> 

:

다음은 내 코드입니다. 도와주세요.

답변

2

MVC에서 제공하는 HtmlHelpers를 사용하여 입력을 렌더링하십시오. 생성 된 <input/>idname 속성이 MVC ModelBinder에서 처리 할 수있는 형식인지 확인합니다.

또한 개체 목록을 다시 게시하려면 for 루프를 사용하여 항목에 ModelBinder가 이해하는 인덱스를 가져옵니다.

컨트롤러에 게시 할 입력을 <form>으로 줄이십시오. 다음 예제에서는 사용자가 "Submit"버튼을 클릭 할 때 "ErrorController"의 "Update"액션에 모델이 게시됩니다. myFormClassmyFormId은 꼭 필요한 것은 아니며 필요한 경우 추가 할 수있는 방법을 보여 드리고자합니다.

@using(Html.BeginForm("Update", "Error", FormMethod.Post, new { @class = "myFormClass", id = myFormId })) { 
    for (var i = 0; i < Model.Length; i++) { 
     @Html.LabelFor(m => m[i].Status) 
     @Html.CheckBoxFor(m => m[i].Status) 

     @Html.LabelFor(m => m[i].Comments) 
     @Html.TextAreaFor(m => m[i].Comments) // multi line 
     @Html.TextBoxFor(m => m[i].Comments) // single line 
    } 

    <button type="submit">Submit</button> 
} 

LabelFor는 Resources.resx의 레이블로 사용할 수 있도록 번역 된 텍스트를 검색하는 뷰 모델에서 속성에 [Display(Name="some_resource_key", ResourceType = typeof(Resources))] 속성을 찾기 위해 노력할 것입니다.

EDIT Antoine에서 언급했듯이 게시 할 모든 ViewModel 속성에 대한 입력을 제공해야합니다. <input type="hidden"/>@Html.HiddenFor(m => m[i].Id)을 사용하여 렌더링 할 수 있습니다.

+3

그의 모델 ID를'.hidden()'안에 넣으라는 OP를 잊지 말고 –

+0

작업을하지 못했습니다. : | – user3206357

+1

양식 태그 "양식 사용 중 ..."을 입력하지 않았습니까? – TTCG

관련 문제