0

我有获取和发布控制器。但是通过 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>

     }

谢谢。

4

1 回答 1

0

确保在您的视图中,您有您打算在 POST 操作中使用的所有值的输入字段。例如,如果要使用ceremony_idfirst_namemiddle_namelast_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)

如果用户不应该修改他们的值,您可以使用隐藏字段,但您也可以根据您的要求使用文本字段。

于 2012-10-15T06:20:25.330 回答