将数据传递给post方法

时间:2012-06-18 12:48:57

标签: asp.net-mvc-3 post razor get actionmethod

我有一个看起来像这样的视图模型

 public class ViewModelRound2 
    {
        public Bid Bid { get; set; }
        public bool SelectedForRound2 { get; set; }  
    }

我有一个看起来像这样的get action方法

public ActionResult Round2Manager(long id)
        {
            ...

            return View(round1Ring3Bids);
        }

一个看起来像这样的帖子方法(尚未实现)

[HttpPost]
        public ActionResult Round2Manager(IEnumerable<ViewModelRound2> viewModelRound2)
        {
            return View(viewModelRound2);
        }

我的观点看起来像这样

   @for (var x = 0; x < Model.Count(); x++)
    {
        ViewModelRound2 viewModelRound2 = Model.ElementAt(x);
        Bid bid = viewModelRound2.Bid;

        string userName = @bid.User.Invitation.Where(i => i.AuctionId == bid.Lot.Lot_Auction_ID).First().User.User_Username;

        <tr>
            <td>
                @userName
            </td>
            <td>
                @bid.Bid_Value
            </td>
            <td>
                @Html.EditorFor(c => c.ElementAt(x).SelectedForRound2) 
            </td>
        </tr>
    }

</table>

<div class="buttonwrapper2">
    @Ajax.ActionLink("Select", "Round2Manager", new { viewModelRound2 = Model }, new AjaxOptions() { HttpMethod = "POST"} )
</div>

这个呈现的页面,包含渲染表中每行的复选框,我希望能够将已检查/未检查的值传递给post方法,以便它可以处理它们。问题是post方法的viewModelRound2参数始终为null。到底是怎么回事?我怎么写这个以便它能达到我想要的目的呢?

1 个答案:

答案 0 :(得分:2)

您应该将所有HTML放在<form>