如何在提交按钮单击时在mvc4中从视图到控制器获取文本框值

Use*_*ser 7 c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

如何在mvc4中从视图到控制器获取文本框值?如果我在控制器中使用httppost方法,则无法找到页面错误.

视图

@model MVC_2.Models.FormModel

@{
    ViewBag.Title = "DisplayForm";
}

@using (Html.BeginForm("DisplayForm", "FormController", FormMethod.Post))
{
    <form>
        <div>
            @Html.LabelFor(model => model.Empname)
            @Html.TextBoxFor(model => model.Empname)
           @* @Html.Hidden("Emplname", Model.Empname)*@

            @Html.LabelFor(model => model.EmpId)
            @Html.TextBoxFor(model => model.EmpId)
           @* @Html.Hidden("Emplid", Model.EmpId)*@

            @Html.LabelFor(model => model.EmpDepartment)
            @Html.TextBoxFor(model => model.EmpDepartment)
           @* @Html.Hidden("Empldepart", Model.EmpDepartment)*@

            <input type="button" id="submitId" value="submit" />

        </div>
    </form>
}
Run Code Online (Sandbox Code Playgroud)

模型

   public class FormModel
    {
        public string _EmpName;
        public string _EmpId;
        public string _EmpDepartment;

        public string Empname
        {
            get {return _EmpName; }
            set { _EmpName = value; }
        }

        public string EmpId
        {
            get { return _EmpId;}
            set {_EmpId =value;}
        }

        public string EmpDepartment
        {
            get { return _EmpDepartment; }
            set { _EmpDepartment = value; }
        }
    }
Run Code Online (Sandbox Code Playgroud)

调节器

        public ActionResult DisplayForm()
        {
            FormModel frmmdl = new FormModel();
            frmmdl.Empname=**How to get the textbox value here from view on submitbutton click???**
        }
Run Code Online (Sandbox Code Playgroud)

Rom*_*meo 12

首先,您需要将按钮类型更改为"提交".所以您的表单值将提交给您的Action方法.

从:

<input type="button" id="submitId" value="submit" />
Run Code Online (Sandbox Code Playgroud)

至:

<input type="submit" id="submitId" value="submit" />
Run Code Online (Sandbox Code Playgroud)

其次,您需要在Action方法中将模型添加为参数.

[HttpPost]
public ActionResult DisplayForm(FormModel model)
    {
       var strname=model.Empname;
             return View();
    }
Run Code Online (Sandbox Code Playgroud)

第三,如果您的Controller名称是"FormController".您需要在视图中将Html.Beginform的参数更改为:

@using (Html.BeginForm("DisplayForm", "Form", FormMethod.Post))

    {
    //your fields
    }
Run Code Online (Sandbox Code Playgroud)

PS如果您的视图与Action方法的名称相同,即"DisplayForm",则无需在Html.BeginForm中添加任何参数.只是为了简单.像这样:

@using (Html.BeginForm())
{
//your fields
}
Run Code Online (Sandbox Code Playgroud)