如何在提交时将值传递给控制器​​? mvc用剃刀

时间:2014-07-02 19:10:57

标签: asp.net-mvc razor

我创建了一个模型,我正在尝试构建类似于单击提交按钮时的值,应将值传递给控制器​​,看起来像

[HttpPost]
// i am getting checked property but not phoneno to controller 
public ActionResult Confirm(Entity s) 
{
    return view();    
}

我的观点

@model MvcApplication3.Models.Entity

@using ( Html.BeginForm("Confirm", "Home", FormMethod.Post))
{
   @Html.CheckBoxFor(m=>m.checkedprop,
      new 
      { 
          @class = "myCheckBox", 
          phoneno= "1234"    //tried different ways none looks working for me 
      })

   <input type="submit" id="ConfirmButton"   />
}

模型

 public class Entity
 {
    public bool checkedprop { get; set; }
    public int phoneno { get; set; }
 }

2 个答案:

答案 0 :(得分:2)

您的加价

@Html.HiddenFor(m=>m.phoneno)

在您的控制器中,您可以获得

[HttpPost]
public ActionResult Confirm(Entity s, string phoneno) 
{
  return view();    
}

答案 1 :(得分:1)

更改

@Html.CheckBoxFor(m=>m.checkedprop,new { 
        @class = "myCheckBox", 
        phoneno= "1234"    //tried different ways none looks working for me 
    })

@Html.CheckBoxFor(m=>m.checkedprop,new {@class = "myCheckBox"})
@{Model.phoneno = 1234}
@Html.HiddenFor(m => m.phoneno)

您的工作原因是您尝试将电话号码设置为复选框的属性。您需要将该电话号码作为单独的字段提交给表单。由于它是硬编码的,并且用户没有输入它,而是从文本框(或其他任何内容)提交它,而是将其作为隐藏字段发送到表单上。