2016-04-22 124 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