【问题标题】:Fill VIEW data based on clicked movie根据点击的电影填充 VIEW 数据
【发布时间】:2017-10-30 12:54:45
【问题描述】:

我正在制作一个电影评论网站(没有实体框架)(不打算使用它)

我有一个存储过程来填充电影的信息:

下面的这段代码:是我根据下面的查询获取电影信息的方式

<div class="panel panel-default" style="background-color:white;">
                    <div class="panel-body">

                        <div style="height:400px; width:100%;">
                            <section class="center slider" style="width: 88%;">
                                @*Aqui va el poster de reviews recientes*@
                                @foreach (var poster in Model.LGetLastReviews)
                                {
                                    <div>
                                        <a href="/Review/Review/?=@poster.Id" id="tag<%=count++%" name="@poster.Id">
                                        <img class="sizecool hvr-shrink" src="@Href("~/Content/"+@poster.Path )"/>
                                        </a>
                                        <div class="subtitulo">

                                            @poster.Title
                                            @poster.Date
                                        </div> 
                                    </div>
                                }

                            </section>

                        </div>

                    </div>
                </div>

这里是查询:

CREATE PROCEDURE [dbo].[GetLastReviews] @Top bigint
AS
BEGIN
SELECT TOP(@Top) Movie.Id, MOVIE.title, Poster.path_image, review.comment, review.Date from review
inner join movie on review.Movie_Id = movie.Id
inner join poster on movie.Id = poster.Movie_Id
order by review.Date desc 
END

现在真正的问题是:如何根据用户点击的内容填充其他视图? 获取 img id,name..etc 并填写此视图:

类:

 public class GetLastReviews
    {
        public long Id  { get; set; }
        public string Title { get; set; }
        public string Path { get; set; }
        public string Comment { get; set; }

        public DateTime Date { get; set; }

    }




public static List<GetLastReviews> GetLastReviews(int top)
        {
            List<GetLastReviews> lastReviewses= new List<GetLastReviews>();
            SqlConnection connection = new SqlConnection(StrConnection);
            string cmd = "GetLastReviews";
            SqlCommand sqlCmd = new SqlCommand(cmd, connection);
            sqlCmd.CommandType = CommandType.StoredProcedure;
            sqlCmd.Parameters.Add("@Top", SqlDbType.VarChar).Value = top.ToString();
            connection.Open();
            SqlDataReader dr = sqlCmd.ExecuteReader();
            while (dr.Read())
            {
                GetLastReviews getLasR = new GetLastReviews();
                getLasR.Id = long.Parse(dr["Id"].ToString());
                getLasR.Title = dr["Title"].ToString();
                getLasR.Path = dr["Path_Image"].ToString();
                getLasR.Comment = dr["Comment"].ToString();
                getLasR.Date = DateTime.Parse(dr["Date"].ToString());
                lastReviewses.Add(getLasR);
            }
            connection.Close();
            return lastReviewses;

        }

【问题讨论】:

  • 您想在模式弹出窗口还是在新页面中打开特定的电影详情?
  • 新页面,我有一个叫做电影评论的视图,它应该显示选定的电影信息

标签: sql asp.net .net sql-server model-view-controller


【解决方案1】:

只需将 div 的 click 事件上的一个函数与 uniqueId(MovieId 或 any) 绑定,如下所示。

@foreach (var poster in Model.LGetLastReviews)
{
 <div onclick="GoToMovieDetail(@Model.MovieId)">
     <a href="/Review/Review/?=@poster.Id" id="tag<%=count++%" name="@poster.Id">
    <img class="sizecool hvr-shrink" src="@Href("~/Content/"+@poster.Path )"/>
                                        </a>
    <div class="subtitulo">
        @poster.Title
        @poster.Date
    </div> 
 </div>
}

在 Javascript 中创建一个函数,如下所示。

function GoToMovieDetail(id)
{
  if(id != null)
  {
    var url = "@Url.Action("DisplayMovieDetailActionName", "MovieControllerName")" + "?MovieId=" + id;
    window.location.href = url;
  }
}

在您的控制器中创建一个动作以根据请求的 Id in 参数获取电影详细信息,如下所示。

public ActionResult DisplayMovieDetail(int id)
{
   MovieModel model = new MovieModel();

   // Get the detail of moview based on requested id in action parameter.
   // Bind MovieModel object.
   // Pass thid object in your return View.
   // In view you need to just bind the model data.

   return View(model);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 2020-11-20
    • 2021-06-13
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    相关资源
    最近更新 更多