获取值查看控制器中的数据

时间:2013-12-27 11:37:59

标签: asp.net-mvc

我做了这一切,但现在如何在CONTROLLER中的文本框,密码框等中输入值。我定义了所有必要的方法,框和按钮等。所以唯一的问题是在控制器中获取值,然后将它们发送到模型以访问db数据

.csHtml

    @using (Html.BeginForm("register","Home", FormMethod.Post, new {id="submitForm"})) 
    {

    <div>
    <i>@Html.Label("Name:")</i>
       @Html.TextBox("txtboxName")
    </div>

    <div>
    <i>@Html.Label("Email:")</i>
       @Html.TextBox("txtboxEmail")
   </div>

   <div>  
    <i>@Html.Label("Password:")</i>
       @Html.Password("txtboxPassword")
    </div>

    <div>  
     <button type="submit" id="btnSubmit" name="Command" value="Submit">Submit</button> 
    </div>

    }

控制器代码:

    namespace LoginSys.Controllers
    {
     public class HomeController : Controller
     {
        public ActionResult Index()
        {
            ViewBag.Message = "Registration";

            return View();
        }

         [HttpPost]
    public ActionResult register(string command, FormCollection formData ) 
    {
        if (command == "submit") 
        {
            var name = formData["txtboxName"];
            var email = formData["txtboxEmail"];

        }
        return View();
    }

      }
   }

我故意使用这种编码方式而不是复杂而前进的方式。只是帮我在控制器中获取值

2 个答案:

答案 0 :(得分:0)

  [HttpPost]
        public ActionResult register(YOURMODEL model) 
        {
            //db operation
            return View();
        }

注意:确保您的文本框名称应与型号名称相同

答案 1 :(得分:0)

您应该使用viewmodels。为可以发布到操作的视图创建模型。但是,如果您希望继续当前的方法,则需要将控制器操作更改为以下内容:

[HttpPost]
        public ActionResult register(string btnSubmit, string txtboxName, string txtboxEmail, string txtboxPassword) 
        {
            if (command == "submit") 
            {

            }
            return View();
        }

如果这不起作用,您可以使用以下方法对其进行测试:

    [HttpPost]
    public ActionResult register(FormCollection form) 
    {
        if (command == "submit") 
        {

        }
        return View();
    }

调试时,您可以检查'form'参数,看看表单中是否存在您的字段,并获取所需参数的正确名称。