2012-10-15 98 views
0

我有和后控制器。 但通过httpPost的comtroller传递模型参数值为null。 为什么我的httpPost模型参数值始终为空?为什么httpPost模型始终为空?

[HttpGet] 
     public ActionResult HireItem() 
     { 

      var HireItemListModel = new HireItemModel(); 

      HireItemListModel = new HireItemModel() 
      { 
       first_name = Session["first_name"].ToString(), 
       middle_name = Session["middle_name"].ToString(), 
       last_name = Session["last_name"].ToString(), 
       ceremony_date = Session["ceremony_date"].ToString(), 
      };   


      var product = _productService.GetAllHireProducts(); 

      if (product.Count != 0) 
      { 

       foreach (var proValue in product) 
       { 
        var productVarSeparateList = _productService.GetHireProductVariantsByProductIds(proValue.Id, false); 

        foreach (var HireProSep in productVarSeparateList) 
        { 
         var productVarSeparateModel = new HireItemModel.HireItemSeparatetModel() 
         { 
          pname = HireProSep.Name, 
          price =HireProSep.Price, 
          pId=HireProSep.Id, 

         }; 
         HireItemListModel.HireItemSeparatetlist.Add(productVarSeparateModel); 
        } 
        var productVarSetList = _productService.GetHireProductVariantsByProductIds(proValue.Id, true); 

        foreach (var HireProset in productVarSetList) 
        { 
         var productVarListset = new HireItemModel.HireItemSetModel() 
         { 
          pname = HireProset.Name, 
          price = HireProset.Price, 
          pId = HireProset.Id, 
         }; 
         HireItemListModel.HireItemSetList.Add(productVarListset); 
        } 
       } 
      } 

      return View(HireItemListModel); 

     } 

此控制器HireItemModel模型参数值为空。为什么??

[HttpPost,ActionName("HireItem")] 
    public ActionResult HireItem(string submitB, FormCollection formCollection, HireItemModel HireItemListModel) 
    { 
     var graduandList = _graduandService.GetGraduandBynameCeremony(HireItemListModel.ceremony_id, HireItemListModel.first_name, HireItemListModel.middle_name, HireItemListModel.last_name); 
     foreach (var graduand in graduandList) 
     { 
      graduand.height = HireItemListModel.height; 
      graduand.head_circumference = HireItemListModel.head_circumferenc; 
      _graduandService.Updategraduand(graduand); 
     } 

这是我的看法。

@model HireItemModel 
    @using (Html.BeginForm()) 
    { 

     <table > 

    <tr> 
     <td > 
      Ceremony : 
     </td> 
     <td> 
      Ceremony at @Model.ceremony_date 

     </td> 
    </tr> 

     <tr> 
       <td > 
        Name : 
       </td> 
       <td > 
        @Model.first_name @Model.middle_name @Model.last_name 
       </td> 
      </tr> 
      </table> 
     <div id="HItemType_1"> 
     @Html.CheckBox("HItemType") 
     @*<input type="checkbox" name="test" value="test" id="HItemType" />*@ 
     <label> Academic Dress Set</label> 

     </div> 
    <div id="HsetItem"> 


       @Html.Partial("_LoadHireSetItem", @Model.HireItemSetList) 
     </div> 


      <div id="HseparateItem"> 
       @Html.Partial("_LoadHireSeparateItem", @Model.HireItemSeparatetlist) 
      </div> 


     <table > 
     <tr> 
     <td colspan="2"> 
     Please tell us your measurement: 
     </td> 
     </tr> 
    <tr> 
     <td > 
     Height (in cm): 
     </td> 
     <td> 
     @Html.EditorFor(model => model.height) 


     </td> 
    </tr> 

     <tr> 
       <td > 
       Head circumference (in cm): 
       </td> 
       <td > 
       @Html.EditorFor(model => model.head_circumferenc) 

       </td> 
      </tr> 
      </table> 

     <div> 
     <input class="productlistaddtocartbutton" type="submit" value="Add to cart" name="submitB" id="btnaddtocart"/> 
     </div> 

    } 

谢谢。

+0

你可以显示你的视图匹配HireItem行动。 – testCoder

回答

0

确保您的视图中有您打算在POST操作中使用的所有值的输入字段。例如,如果你想使用你需要包括他们ceremony_idfirst_namemiddle_name,并last_name性质:

@Html.HiddenFor(model => model.ceremony_id) 
@Html.HiddenFor(model => model.first_name) 
@Html.HiddenFor(model => model.middle_name) 
@Html.HiddenFor(model => model.last_name) 

您可以使用隐藏字段,如果用户不应该改变自己的价值观,但你也可以有根据您的要求使用文本字段。

+0

谢谢..它正在工作 – user1348351