2016-04-22 128 views
1

我是mvc的新手,我希望从代码后面访问一个文本框值的值,我认为这是通过将值作为参数传递给我的逻辑方法行动结果,但是当我调试firstName其显示为空?。提交给控制给出空值

这是我试图访问这个值请原谅我的无知我来自一个长的webforms背景。

<input id="firstName" class="form-control" type="text" /> 

而且相对于控制器快速quesiton必须我总是返回一个视图,它是从我能打了个比方去回报第二步,只要它具有相同的布局文件?如何告诉它去另一个视图,而不是保存操作原因,我问的是我正在做一个向导表单。

我的形式标记

@using (Html.BeginForm("Step1", "Forms", FormMethod.Post, new { id = "submitForm" })) 
{ 
@Html.AntiForgeryToken() 
<h4>Health Check</h4> 
<hr /> 
@Html.ValidationSummary("", new { @class = "text-danger" }) 

<div class="form-group"> 
    @Html.Label("First Name", new { @class = "col-md-2 control-label" }) 


    <div class="col-md-10"> 
     <input id="firstName" class="form-control" type="text" /> 
    </div> 
</div> 

<div class="form-group"> 
    @Html.Label("Middle Name", new { @class = "col-md-2 control-label" }) 


    <div class="col-md-10"> 
     <input id="txtmiddleName" class="form-control" type="text" /> 
    </div> 
</div> 
<div class="form-group"> 
    @Html.Label("Surname", new { @class = "col-md-2 control-label" }) 


    <div class="col-md-10"> 
     <input id="txtsurname" class="form-control" type="text" /> 
    </div> 
</div> 

<div class="form-group"> 
    @Html.Label("Saluation", new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     <input id="txtSaluation" class="form-control" type="text" /> 
    </div> 
    </div> 

<div class="form-group"> 
    @Html.Label("Aliases", new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     <input id="txtAliases" class="form-control" type="text" /> 
    </div> 
</div> 

<div class="form-group"> 
    @Html.Label("Maritial Status", new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     <input id="txtmStatus" class="form-control" type="text" /> 
    </div> 
</div> 


<div class="form-group"> 
    @Html.Label("Maritial Status", new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     <select class="form-control"></select> 

    </div> 
</div> 


<div class="form-group"> 
    @Html.Label("Address 2", new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     <input id="txtmStatus" class="form-control" type="text" /> 
    </div> 
</div> 
<div class="form-group"> 
    @Html.Label("City", new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     <input id="txtmStatus" class="form-control" type="text" /> 
    </div> 
    </div> 

    <div class="form-group"> 
    @Html.Label("Post Code", new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     <input id="txtmStatus" class="form-control" type="text" /> 
    </div> 
    </div> 

    <div class="form-group"> 
     @Html.Label("County", new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      <input id="txtCounty" class="form-control" type="text" /> 
     </div> 
    </div> 
    <div class="form-group"> 
     @Html.Label("Country", new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      <input id="txtmStatus" class="form-control" type="text" /> 
     </div> 
    </div> 

    <div class="form-group"> 
     @Html.Label("Date Of Birth", new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      @(Html.Kendo().DatePicker() 
      .Name("datepicker")) 


     </div> 
    </div> 


    <div class="form-group"> 
     @Html.Label("Home Tel No", new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      <input id="txtmStatus" class="form-control" type="text" /> 
     </div> 
    </div> 

    <div class="form-group"> 
     @Html.Label("Home Work No", new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      <input id="txtmStatus" class="form-control" type="text" /> 
     </div> 
    </div> 


    <div class="form-group"> 
     @Html.Label("Fax No", new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      <input id="txtmStatus" class="form-control" type="text" /> 
     </div> 
    </div> 

    <div class="form-group"> 
     @Html.Label("Mobile No", new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      <input id="txtmStatus" class="form-control" type="text" /> 
     </div> 
    </div> 

    <div class="form-group"> 
     @Html.Label("Best Time To Call", new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      <select class="form-control"> 
       <option>Morning</option> 
       <option>Afternoon</option> 
       <option>Evening</option> 
      </select> 

     </div> 
    </div> 
    <button type="submit" id="btnSave">Save</button> 



} 

我的控制器操作结果:

public ActionResult Step1(string firstName) 
    { 
     DataAccessAdapter _adapter = new DataAccessAdapter(); 

     TblfhcsPersonalEntity _personal = new TblfhcsPersonalEntity(); 

     _personal.FirstName = firstName; 



     _adapter.SaveEntity(_personal, true); 




     return View(); 

    } 
+0

建议您转到MVC网站并了解生成视图的基础知识。总是使用强类型的'HtmlHelper'方法绑定到你的模型,所以你的HTML是正确生成的 –

回答

2

对于任何形式的HTML提交数据,所有<input>标签必须有一个name="..."属性。设置id对JavaScript很有用,但在表单提交时忽略。

在这种情况下,name="firstName"将是一个很好的开始,因为它符合您在Controller操作方法Step1中绑定的内容。

+0

谢谢你破解它,但是我注意到的一件事是我的样式表单在保存问题后消失。 – rogue39nin