重新加载布局会导致模型变空(MVC4)

时间:2014-11-09 11:45:03

标签: asp.net-mvc-4

我试图通过使用HttpPost在我的视图中显示结果表,但我的视图总是空白。 我现在已经发现httpPost动作起作用并返回结果,但在完成动作之前,再次调用布局,再次调用RenderBody。 RenderBody完成后,视图将再次包含一个空模型,并导致页面显示为空。

寻求建议如何解决这个问题!我打破了这个问题几个小时,似乎没有看到光......

查看代码:



@using MovieRental.DAL.Entities; @model List
<Movie>

  @{ ViewBag.Title = "MyRentedMovies"; }

  <h2>MyRentedMovies</h2>

  <div class="container">
    <div class="col-md-12 column">
      <form id="frmmymovies" class="col-md-12">
        <input id="currentuserid" type="hidden" name="userid" value="@ViewBag.user.UserId">
      </form>

      <div id="mymovies" class="btn btn-primary">Show my rented movies</div>

    </div>
  </div>

  <div>
    @ViewBag.cost;
  </div>

  @if (Model != null) {
  <div class="container">
    <div class="row clearfix">
      <div class="col-md-12 column">
        <table id="" class="table table-striped table-bordered">
          <thead>
            <tr>
              <th>Action</th>
              <th>Movie Title</th>
              <th>Release Date</th>
              <th>Storyline</th>
              <th>Location</th>
              <th>Movie Genre</th>
            </tr>
          </thead>

          <tfoot>
            <tr>
              <th>Action</th>
              <th>Movie Title</th>
              <th>Release Date</th>
              <th>Storyline</th>
              <th>Location</th>
              <th>Movie Genre</th>
            </tr>
          </tfoot>
          <tbody>
            @foreach (var item in Model) {
            <tr>
              <td><i class="glyphicon glyphicon-plus" movieId="@item.MovieId"></i>
              </td>
              <td>@item.MovieName</td>
              <td>@item.ReleaseDate</td>
              <td>@item.Storyline</td>
              <td>@item.Location.LocationName.ToString()</td>
              <td>@item.MovieGenre.GenreName.ToString()</td>
            </tr>
            }
          </tbody>
        </table>
      </div>
    </div>
  </div>
  } else {
  <div class="container">
    <div class="row clearfix">
      <div class="col-md-12 column">
        <div class="alert alert-info" role="alert">
          You currenty don't have any rented movies in your possession.
        </div>
      </div>
    </div>
  </div>
  }
&#13;
&#13;
&#13;

控制器代码:

&#13;
&#13;
       public ActionResult MyRentedMovies()
        {
            return View();

        }

        [HttpPost]
        public ActionResult MyRentedMovies(int userid) 
        {
            var myrentdetails = rentrep.GetAll().Where(e => e.UserId == userid);
            List<Movie> mymovies = new List<Movie>();

            foreach (var item in myrentdetails)
            {
                Movie movie = movierep.FindById(item.MovieId);
                mymovies.Add(movie);                
            }
            return View(mymovies);
        }
&#13;
&#13;
&#13;

JS脚本:

&#13;
&#13;
$(function () {
    $('#mymovies').click(function () {
        //var user = $('#currentuserid').val();
        console.log('gethere');
        $.post('/useronly/myrentedmovies', $('#frmmymovies').serialize(), function (data) {
            if (data) {
                console.log(data);
                document.location = '/useronly/myrentedmovies';
            }
            else {
                console.log('error');
            }
        });
    });
});
&#13;
&#13;
&#13;

0 个答案:

没有答案