나는 레코드의 정확한 숫자를 반환 아약스/JSON 호출을 가지고 있지만 모든 동일한 레코드, 최초의 기록이다..NET MVC 반환 중복 레코드가
SQL보기 :
ALTER view [dbo].[v_EMS_BM_Organization_Detail] as
select a.OrgID
, a.Organization
, a.inactive
, b.buID
, b.BusinessUnit
, count(distinct c.Budget) Budgets
, count(distinct d.BEMS) People
from t_EMS_BM_Organization a
left join t_EMS_BM_Business_Unit b
on a.OrgID = b.OrgID
left join t_EMS_BM_Budget c
on b.buID = c.buID
left join t_EMS_BM_Person d
on c.Budget = d.Budget
group by a.OrgID
, a.Organization
, a.inactive
, b.buID
, b.BusinessUnit
GO
SQL 서버에 쿼리 :
select *
from v_EMS_BM_Organization_Detail
where OrgID= 6
결과 :
OrgID Organization inactive buID BusinessUnit Budgets People
6 E3001 0 27 Manufacturing Services Staff 1 5
6 E3001 0 43 BASN 1 0
6 E3001 0 45 Special Assignment 1 0
내 모델 :
namespace EMSBM.Models
{
using System;
using System.Collections.Generic;
public partial class v_EMS_BM_Organization_Detail
{
public int OrgID { get; set; }
public string Organization { get; set; }
public Nullable<bool> inactive { get; set; }
public Nullable<int> buID { get; set; }
public string BusinessUnit { get; set; }
public Nullable<int> Budgets { get; set; }
public Nullable<int> People { get; set; }
}
}
,536,913,632 10
내 컨트롤러 :
[HttpPost]
public JsonResult OrgDetails(int ID)
{
List<v_EMS_BM_Organization_Detail> orgDetail = new List<v_EMS_BM_Organization_Detail>();
orgDetail = db.v_EMS_BM_Organization_Detail.Where(x => x.OrgID == ID).OrderBy(x => x.BusinessUnit).ToList();
return this.Json(new
{
Result = (from obj in orgDetail
select new
{
OrgID = obj.OrgID
,
Organization = obj.Organization
,
inactive = obj.inactive
,
buID = obj.buID
,
BusinessUnit = obj.BusinessUnit
,
Budgets = obj.Budgets
,
People = obj.People
})
});
}
내 아약스/JSON 호출 :
$('#organization-table-body').delegate('tr', 'click', function() {
var OrgID = $(this).attr('id');
OrgID = OrgID.substr(2, OrgID.length);
$.ajax({
type: 'post',
url: '/OrganizationDetail/OrgDetails',
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ ID: OrgID }),
success: function (data) {
$('#org-detail-body').empty();
var html = '';
$.each(data['Result'], function (i, item) {
if (i == 0) {
$('#org-name').html(item.Organization +' Details');
$('#OrgID').val(OrgID);
$('#btn-active-status').removeClass('btn-primary');
$('#btn-active-status').removeClass('btn-danger');
if (item.inactive == true) {
$('#btn-active-status').html('Activate Organization');
$('#btn-active-status').addClass('btn-primary');
} else {
$('#btn-active-status').html('Deactivate Organization');
$('#btn-active-status').addClass('btn-danger');
}
}
html += '<tr id="tr' + item.buID + '" class="cursor-pointer"><td>' + item.BusinessUnit + '</td>';
html += '<td>' + item.Budgets + '</td><td>' + item.People + '</td></tr>';
});
$('#org-detail-body').html(html);
$('#org-detail-div').modal('show');
},
error: function (ex) {
alert(ex.responseText);
}
});
나는 세 가지 기록을 얻을 수 위의 SQL Server 쿼리에서 추천을 전달이 정확합니다.
Business Unit Budgets People
BASN 1 0
BASN 1 0
BASN 1 0
것은 내가 첫 번째 기록에 상관없이 내가 통과 어떤 ID 시대의 올바른 X 번호를 중복되지 얻을 VS 2012 년 디버깅 : 그러나 세 가지 기록은 첫 번째 기록이다.
: 여기에 모든이에 제공되는 튜토리얼이 있습니다
. 감사! – Matt