2014-04-02 83 views
0

控制器文件在應用程序HomeController.cs中定義了兩個控件SetPowerOff和[HttppPost] SetPowerOff。MVC HttpPost接收空參數

public ActionResult SetPowerOff(int ID, string deepness) 
    { 
    ............. 
     if (Request.IsAjaxRequest()) 
     { 
      var viewModel = new HomeSetPowerOffViewModel() 
      { 
       //List of devices 
       Devicelist = list, 
       age = 18 

      }; 
      return PartialView("_SetPowerOff", viewModel); 
     } 
     else 
     { 
      return HttpNotFound(); 
     } 
    } 

[HttpPost] 
public ActionResult SetPowerOff(HomeSetPowerOffViewModel homeSetPowerOffViewModel) 
{ 
} 

部分視圖返回列表中的設備。

@using (Html.BeginForm("SetPowerOff", "Home", FormMethod.Post, new { @class = "form-horizontal" })) 
{ 
    <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" aria-hidden="true">X</button> 
     <h3 id="myModalLabel">Devices information</h3> 
    </div> 
    <div class="modal-body "> 
     <div class="row-fluid"> 
      <div class="span12"> 
       <ul> 
       @foreach (var devices in Model.Devicelist) 
       { <li> 
        @devices.Name; 
        </li> 
       } 
       </ul> 
      </div> 
     </div> 
    </div> 
    <div class="modal-footer"> 
     @Html.ActionLink("Cancel", "Index", "Home", new { @class = "btn btn-danger" }) 
     <button type="submit" class="btn btn-success"> 
      Ok 
     </button> 
    </div> 
} 

我按局部視圖確定按鈕後它去HttpPost請求。這裏收到的homeSetPowerOffViewModel爲null,年齡爲0.我非常想知道爲什麼要重置它們。 感謝您的時間!

+0

請更新您的視圖代碼包含數據'age' 。 –

+0

我只需要在部分視圖中打印設備的名稱。 – Cristian

回答

3

你不要有任何輸入表單中的所以沒什麼提交

+0

那麼我怎樣才能發送列表文本框或其他東西。問題是我無法在其他任何設備上打印@ devices.Name。 :) – Cristian

+0

@for(var i = 0; i @ Html.DisplayFor(model => Model.Devicelist [i] .Name) @ Html.HiddenFor(model = > Model.Devicelist [i] .Name) } –

+0

將您的foreach代碼更新爲之前評論中的代碼,它將顯示設備的名稱,並且它將創建一個隱藏字段,其中的設備名稱應該是提交回服務器 –

0

在後您收到hidden或其他任何輸入字段(下拉列表,文本框等)。你的表單中沒有這樣的字段。 (你沒有填寫任何方式模型)

Althought,你可以使用Ajax提交,你可以發送任何你想你的控制器

+0

感謝您的解釋! – Cristian

1

您的看法<form>不包含像<input><select><textarea>表單域的age領域。

所以當你提交,它將被設置爲默認整數值0

假設HomeSetPowerOffViewModelage屬性是一個整數類型(int

+0

謝謝你的解釋! – Cristian