表单不在POST上传递值

时间:2014-09-23 17:55:10

标签: asp.net-mvc twitter-bootstrap razor twitter-bootstrap-3

这是我的观看代码:

@model pedidosOnlineMVC.Models.ViewModel.AdmView
@using pedidosOnlineMVC.Models
@{
    Layout = "~/Views/Administrador/_LayoutAdm.cshtml";
    List<Usuario> lu = pedidosOnlineMVC.Controllers.UsuarioController.favoreds(Model.adm.estabelecimento.Estabelecimento_Id);
}
@using (var f = Html.Bootstrap().Begin(new Form()))
{
    using (var p = Html.Bootstrap().Begin(new Panel())) 
    {
        using (var t = Html.Bootstrap().Begin(new Table())) 
        {
            using (var h = t.BeginHeader()) 
            {
                using(var hr = h.BeginHeaderRow())
                {
                    @hr.Cell("Usuário")
                    @hr.Cell("Status")
                }
            }
            using(var b = t.BeginBody())
            {
                for(int i=0;i<lu.Count;i++)
                {
                    using(var c = b.BeginRow())
                    {
                        @f.FormGroup().CustomControls(Html.HiddenFor(model => model.Usuario_Id[i], lu[i].Usuario_Id))
                        @c.Cell(lu[i].nome)
                        @c.Cell(f.FormGroup().CustomControls(Html.Bootstrap().CheckBoxFor(model=>model.checkAuts[i])))
                    }
                }
            }
        }
        using (var pf = p.BeginFooter())
        {
            @f.FormGroup().CustomControls(@Html.HiddenFor(model => model.adm.Administrador_Id, Model.adm.Administrador_Id))
            @f.FormGroup().CustomControls(Html.Bootstrap().SubmitButton().Text("Autorizar"))
        }
    }
}

我在这里遇到了类似的问题:cshtml page not passing date value on post,但我所做的却不起作用。 我尝试在开发人员工具中查看网络窗口,我可以看到在帖子上发送的ID值(Administrador_IDUsuario_ID),但它们从未到达我的控制器。 这是控制器的代码:

[HttpPost]
public ActionResult autCli(AdmView adm)
{
    return null;
}

它没有代码,因为我仍然没有让它工作,但参数在调试时仍然可以工作,但我在每个属性中都得到NULL。 如果有人可以提供帮助,我会很感激。

AdmView模型,根据要求:

public class AdmView
{
    public Administrador adm { get; set; }
    public Produto prod { get; set; }
    public virtual List<bool> checkAuts { get; set; }
    public virtual List<int> Usuario_Id { get; set; }
}

2 个答案:

答案 0 :(得分:0)

在ActionResult方法之前添加[HttpPost]

答案 1 :(得分:0)

尝试使用FormCollection将数据从视图传递到控制器。

就像这样:

[HttpPost]
public ActionResult autCli(FormCollection collection)
{
  strint Usuario_Id = collection["Usuario_Id"]; //You can get data with this way...
  return View();
}

查看this question了解详情。