如何从视图传递Html.HiddenFor到视图和控制器mvc

时间:2016-03-20 15:50:36

标签: html asp.net-mvc

我正在尝试将id从页面传递到提交表单,但似乎没有运气。

    @model IList<MySiteCom.ViewModels.ReviewViewModel>
@for (int i = 0; i < Model.Count(); i++)
{
    @Html.HiddenFor((x => x[i].ReviewId))
    @Html.ActionLink("comment", "AddComent", new { id = @Html.DisplayFor(x => x[i].ReviewId) })

}

第2页

    @model MySiteCom.Models.Comments

@Html.HiddenFor(a => a.review.ReviewId)

@using (Html.BeginForm())

1 个答案:

答案 0 :(得分:2)

您可以将隐藏字段值从一个View传递给Controller,然后在TempData,ViewBag或ViewData等帮助下将值从Controller传递到另一个View。您可以直接使用模型的属性名称来使用HiddenFor如下图所示:

查看I:

@model IList<MySiteCom.ViewModels.ReviewViewModel>

@foreach (var review in Model)
{
    <input type="hidden" name="ReviewId" value=review.ReviewId />
    @Html.ActionLink("comment", "AddComent", new { id = review.ReviewId  })
}


控制器:

public ActionResult AddComment([Bind(Exclude = null)] ReviewViewModel review)
{   
    //...
    TempData["revId"] =  review.ReviewId;
{


查看II:

var value = @TempData["revId"]

有关ViewBag,ViewData或TempData之间的差异,您可以查看When to use ViewBag, ViewData, or TempData in ASP.NET MVC 3 applications。希望这会有所帮助...