通过单击“MVC 获取错误”中的“下一步”按钮 asp.net 在同一详细信息页面上显示记录

show records on same details page by clicking next button in asp.net mvc getting error

本文关键字:下一步 详细信息 记录 显示 按钮 MVC 单击 获取 取错误 asp 中的      更新时间:2023-09-26

我想在用户单击下一步按钮时在详细信息页面上显示记录,然后他应该能够显示表的下一条记录。假设用户选择特定记录 id 1 的详细信息,他通过单击下一步按钮在同一页面上同时获取该 id 1 的详细信息,用户应该能够获取 id 2 的记录,反之亦然。我已经做到了,但是当表在 id 3 和 id 3 和 id 2 之后没有名为 id 2 的此类 id 时出现一些错误,它向我显示错误。请帮助我找出我错在哪里。

视图

@model WebApp.ViewModels.ViewTeamList
<script type="text/javascript">
   var dataid = '@Html.Raw(Json.Encode(Model.TeamDetails.TeamId))';
for( var item in dataid)
    console.log(dataid[item]);}();
</script>
<script type="text/javascript">
  $("#btnNext").click(function () {
    var $buttonClicked = $(this);
    var nid = $buttonClicked.attr('data-id');
    console.log(nid);
    $.ajax({
      url: 'Team/Next',
      data: { dataid: nid },
      //data: JSON.stringify(data.TeamId),
      success: function (response) {
       divDetail.html(data);
      }
    });
  });
</script>
<div class="row">
  <div class="col-md-11 col-sm-11 pull-left" style=" font-size:large; font-weight:600">
    @Model.TeamDetails.TeamName
  </div>
  @* <div class="col-md-1 col-sm-1 pull-right">*@
  <div class="navi-but">
    <a href="#" id="btnPrevious" data-id="@Model.TeamDetails.TeamId" class="details">
      <span class="previous">Previous</span>
    </a>
    <a href="#" class="details" data-id="@Model.TeamDetails.TeamId" id="btnNext">
      <span style="padding-right:7px">Next</span><span class="next"></span>
    </a>
    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">
        <img src="~/Images/settings.png" />
      </a>
      <ul class="dropdown-menu" role="menu">
        <li><a href="@Url.Action("Edit", "Team", new { id = Model.TeamDetails.TeamId })">Edit</a></li>
      </ul>
    </li>
  </div>
  @* </div>*@
</div>             
<div class="row">
  <div class="col-md-4 col-sm-4"> 
    @Html.CustomLabel("lblTeam","CT Team Name:")
  </div>
  <div class="col-md-8 col-sm-8">
    @Model.TeamDetails.TeamName
  </div>
</div>
<div class="row">
  <div class="col-md-4 col-sm-4"> 
    @Html.CustomLabel("lblDescription","Description:")
  </div>
  <div class="col-md-8 col-sm-8">
    @Model.TeamDetails.Description
  </div>
</div>
<div class="row">
  <div class="col-md-4 col-sm-4"> 
    @Html.CustomLabel("lblCTUserCount","User Count")
  </div>                         
  <div class="col-md-8 col-sm-8 pull-left">
    @Model.TeamDetails.UserCount
  </div>                  
</div>

控制器

public ActionResult Next(int dataid)
{
  dataid++;          
  ViewTeamList viewTeamList = new ViewTeamList();
  viewTeamList.ViewTeamDetails(dataid);
  return PartialView("_ViewTeamDetails", viewTeamList);
}

查看模型

public class ViewTeamList
{
  public TeamDetails TeamDetails;
  private ITeamService teamService;
  public ViewTeamList()
  {
  }
  public void ViewTeamDetails(int Id)
  {
    teamService = new TeamService(pDbContext);
    TeamDetails = teamService.GetTeamDetails(Id);
    //return (TeamDetails.First());
  }
}

请在我做错的地方提供帮助。

我没有

详细查看您的代码,但在我看来,您有一个逻辑问题。由于您总是将 id 递增 1 ( dataid++; (,如果同时删除某些记录,这将不起作用。例如,假设您有 ID 为 1 的记录 1、ID 为 2 的记录 2 和 ID 为 3 的记录 3,并且您删除了记录 2。现在,当您尝试在 Record1 之后获取下一条记录时,您将 id 递增 1,因此您有 2,并且数据库中不再有 id 为 2 的记录。而不是 dataid++;您应该找到数据库中真正存在的下一个 ID。正如我所说,我没有详细阅读代码,因此可能会有更多可能的问题。

  • 要从Web方法显示,您应该按照以下步骤操作:创造

    [webmethod]

检索所有数据

  • 然后列出项,使客户端使用javascript方法:

    ajax({ type:'post', url:'exaple.aspx/showMethod', data:{}, datatype:'json', contentType:'application/json; charset=utf-8',scuccess:function(data( --从这里在表格或任何其他表格中显示data (, error:function(({ alert('Error'(; } }(

<小时 />