2012-10-15 2 views
0

У меня есть контроллер и пост. Но по параметрам параметров передачи параметров httpPost comtroller значение null. Почему мои значения параметров модели httpPost всегда равны нулю?Почему модель httpPost всегда имеет значение null?

[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 этого контроллера равен NULL. ЗАЧЕМ??

[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_id, first_name, middle_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

Смежные вопросы