首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何传递所选复选框项的列表并传递到下一个视图

如何传递所选复选框项的列表并传递到下一个视图
EN

Stack Overflow用户
提问于 2015-05-11 00:50:12
回答 3查看 108关注 0票数 0

我在一个视图中列出电影项目,并想知道如何将那些通过复选框选中的电影传递给另一个视图,比如SelectedMovies视图。

My当前模型:

代码语言:javascript
复制
public class Movie
{
    public int MovieID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}

控制器:

代码语言:javascript
复制
public ActionResult Movies()
{
        return View(rc.GetAll().OrderBy(m => m.Name));
} 
public ActionResult SelectedMovies()
{
        return View();
}

电影视图:

代码语言:javascript
复制
 @model IEnumerable<Application.Models.Movie>
 @using (Html.BeginForm("SelectedMovies","Site"))
 {
    @foreach (var item in Model)
    {
      <li>
         @Html.DisplayFor(modelItem => item.Name)
         @Html.DisplayFor(modelItem => item.Description)

         @Html.CheckBoxFor(modelItem => item.isSelected)  
      </li>
    }
 }

SelectedMovies视图将只是一个带有在“电影视图”中选中的项的视图。

EN

回答 3

Stack Overflow用户

发布于 2015-05-11 08:37:03

多亏了Sachu(如果可以的话),我才能解决我的问题。这可能是也可能不是最好的解决方案,但就目前而言,它给了我我想要的结果。

代码语言:javascript
复制
public class Movie
{
    public int MovieID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}

public class SelectedMovie
{
    public int MovieID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}

而不是使用@Html.CheckBoxFor,而是使用标准

代码语言:javascript
复制
<input id="chk-@item.MovieID" type="checkbox" name="chk_movie" value="@item.MovieID" />

对于ActionResult:

代码语言:javascript
复制
[HttpPost]
public ActionResult SelectedMovies(IList<int> chk_movie)
{
    List<SelectedMovie> list = new List<SelectedMovie>();
    for (int i = 0; i < chk_movie.Count; i++ )
    {
         SelectedMovie sm = new SelectedMovie();
         Movie m = new Movie();
         m = RestClient.GetById(chk_movie[i]);
         sm.MovieID = m.MovieID;
         sm.Name = m.Name;
         list.Add(sm);
    }
    return View(list);
}

希望这能帮助任何有类似问题的人。

票数 1
EN

Stack Overflow用户

发布于 2015-05-11 03:35:11

检查下面的code..hope,它有帮助

在视图中,为所有复选框赋予相同的名称和唯一的值。

代码语言:javascript
复制
<input type="checkbox" name="movie_id" value="@item.MovieID" > 

In your controller  pass an IList with the name of the checkbox.

public ActionResult display_selected_movies(IList<string> movie_id)
{
......
}

您将只获得选中的复选框的值列表。

票数 0
EN

Stack Overflow用户

发布于 2015-05-11 05:15:50

代码语言:javascript
复制
public class Movie
{
    public int MovieID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public bool IsSelected {get; set;}
}

然后在视野中

代码语言:javascript
复制
@Html.CheckBoxFor(modelItem => item.IsSelected)  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30158208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档