你好第一次在stackoverflow中寻求帮助。我的问题是,如何获得所选复选框的值或模型。
<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。
如果你能帮助我,会很好,因为我在这个问题上被阻止了一段时间。
答案 0 :(得分:0)
将您的观点改为:
<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;
}
答案 1 :(得分:0)
这里的关键是,在视图中它需要以一种形式发布到控制器和动作,然后在动作中它需要是string []而不是bool []。这是一个简化的例子,但它应该给你一些想法:
控制器:
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"/>
}