2016-08-04 4 views
0

안녕하세요. stackoverflow에서 도움을 요청하는 것이 처음입니다. 내 질문은, 어떻게 내가 선택한 확인란의 가치 또는 모델을 얻을 것이다. 컨트롤러에서 체크 박스 값을 가져 오는 방법 MVC

<dl class="dl-horizontal"> 
    @foreach (Produto prod in (Model.ProdutosEntrada)) 
    { 
     <dt> 
      @Html.DisplayNameFor(model => prod.Designacao) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => prod.Designacao) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => prod.Descricao) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => prod.Descricao) 
     </dd> 
     foreach (EntradaProduto entProd in (Model.EntradaProdutoEscolhida)) 
     { 
      if (prod.CodigodoProduto == entProd.CodigodoProduto) 
      { 
       <dt> 
        @Html.DisplayNameFor(model => entProd.Quantidade) 
       </dt> 
       <dd> 
        @Html.DisplayFor(model => entProd.Quantidade) 
       </dd> 
       <dt> 
        @Html.DisplayNameFor(model => entProd.Validado) 
       </dt> 
       <dd> 
        <input type="checkbox" name="prodValidados" id="@entProd.CodigodoProduto" value="@entProd.Validado"/>*@ 
       </dd> 
      } 
     } 

    } 
</dl> 

내가 작업에 리디렉션 체크 박스에서 값을 잡는 방법을 잘 모릅니다, 뷰의 코드입니다.
public ActionResult AtualizarValidado(bool[] prodValidados) 
    { 

     return null; 
    } 

내가 인수로 체크 박스와 같은 이름의 배열을 전달하려고 작업이지만, 항상 null입니다.

잠시 동안이 문제로 인해 차단되었으므로 나를 도울 수 있다면 좋을 것입니다. 같은 컨트롤러를 변경

<dt> 
      @Html.DisplayNameFor(model => entProd.Validado) 
     </dt> 
     <dd> 
      @Html.Checkbox("prodValidados") 
     </dd> 

:

[HttpPost] 
public ActionResult AtualizarValidado(System.Web.Mvc.FormCollection form) 
{ 
    //form["prodValidados"] will return a bool value - checked = true/unchecked = false 
    return null; 
}  
+0

완전한'

'HTML 요소를 게시하시기 바랍니다. – mxmissile

답변

0

것은 당신의보기를 변경 컨트롤러와 액션을 가지고 있다면, 액션에서 bool []이 아닌 string []이 될 필요가 있습니다. 여기에 간단한 예이지만 몇 가지 아이디어를 제공해야합니다

컨트롤러 :

public ActionResult AtualizarValidado() 
{ 
    return View(); 
} 

[HttpPost] 
public ActionResult AtualizarValidado(string[] prodValidados) 
{ 
    //prodValidados contains the values selected 
    return View(); 
} 

뷰 :

@using (Html.BeginForm()) 
{ 
    foreach (var entProd in Model.EntradaProdutoEscolhida) 
    { 
     @Html.DisplayNameFor(model => entProd.Validado) 
     <input type="checkbox" name="prodValidados" value="@entProd.Validado" /> 
    } 

    <input type="submit" value="Submit"/> 
} 
+0

감사합니다 awnser,하지만 나던 작동, 양식 null입니다. 어떻게 행동으로 방향을 바꿀 수 있을지 말해 줄 수 있어요? – ATavares

+0

대상 URL은/ControllerName/AtualizarValidado 여야합니다. 컨트롤러에서 null을 반환합니다. 진정한 행동으로 해당 코드를 작성해야합니다. 디버그에서 "form"의 내용을 검사 할 수 있습니다. – Gary

+0

debbuger를 사용했고 폼이 null입니다 – ATavares

0

을 여기서 중요한 일들이, 형태에 어떤 게시물 할 필요가보기에,이다

관련 문제