簡體   English   中英

通過單擊 asp.net mvc 中的下一步按鈕在同一詳細信息頁面上顯示記錄獲取錯誤

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

當用戶單擊下一步按鈕時,我想在詳細信息頁面上顯示記錄,然后他應該能夠顯示表的下一條記錄。 假設用戶選擇特定記錄 id 1 的詳細信息,他在同一頁面上通過單擊下一個按鈕同時獲取該 id 1 的詳細信息,用戶應該能夠獲取 id 2 的記錄,反之亦然。 我已經做到了,但是當表在 id 1 和 id 2 之后沒有名為 id 3 的 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 的 Record1、ID 為 2 的 Record2 和 ID 為 3 的 Record 3,然后您刪除了 Record2。 現在,當您嘗試在 Record1 之后獲取下一條記錄時,您將 id 增加 1,因此您有 2 並且數據庫中不再有 id 為 2 的記錄。 而不是 dataid++; 你應該找到下一個真正存在於 db 中的 id。 正如我所說,我沒有詳細閱讀代碼,因此可能存在更多可能的問題。

  • 要從 WebMethod 顯示,您應該遵循以下步驟:創建

    [webmethod]

檢索所有數據

  • 列表項然后在客戶端使用一個 javascript 方法:

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


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM