我在一个视图中列出了电影项目,想知道我如何将通过复选框选择的任何电影传递到另一个视图,比如SelectedMovies视图。
我目前的模特:
public class Movie
{
public int MovieID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
控制器:
public ActionResult Movies()
{
return View(rc.GetAll().OrderBy(m => m.Name));
}
public ActionResult SelectedMovies()
{
return View();
}
电影观看
@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视图将是包含在电影视图中检查的项目的视图。
答案 0 :(得分:1)
感谢Sachu(如果可以的话,+1代表)我能够解决我的问题。它可能是也可能不是最好的解决方案,但现在它给了我想要的结果。
public class MyWebView extends WebView {
private Context context;
private GestureDetector gestDetector;
public MyWebView(Context context) {
super(context);
this.context = context;
gestDetector = new GestureDetector(context, gestListener);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return gd.onTouchEvent(event);
}
GestureDetector.SimpleOnGestureListener gestListener= new GestureDetector.SimpleOnGestureListener() {
public boolean onDown(MotionEvent event) {
return true;
}
public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) {
//if (event1.getRawX() > event2.getRawX()) {
// show_toast("swipe left");
//} else {
// show_toast("swipe right");
//}
//you can trace any touch events here
return true;
}
};
void show_toast(final String text) {
Toast t = Toast.makeText(context, text, Toast.LENGTH_SHORT);
t.show();
}
}
而不是使用@ Html.CheckBoxFor使用标准
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; }
}
对于ActionResult:
<input id="chk-@item.MovieID" type="checkbox" name="chk_movie" value="@item.MovieID" />
希望这可以帮助任何有类似问题的人。
答案 1 :(得分:0)
检查以下代码..希望它有帮助
在视图中,为您的所有复选框指定相同的名称和唯一值。
<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)
{
......
}
您将只获得所选复选框的值列表。
答案 2 :(得分:0)
public class Movie
{
public int MovieID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public bool IsSelected {get; set;}
}
然后在视图中
@Html.CheckBoxFor(modelItem => item.IsSelected)