저는 현재 MVC 애플리케이션의 편집 페이지에 검도 UI ASP.NET MVC 그리드를 포함하려고합니다. 그리드가 현재 경로 ID의 값만 반환하도록 제한하고 싶습니다. 나는 이것을 수행하는 방법을 연구 해왔지만 정확히 내가 필요한 것을 찾을 수 없거나 점을 연결하기에는 너무 새롭다.검도 그리드를 현재 루트 ID로 제한
내 생각에 지금까지 필터를 DataSource에 적용하거나 컨트롤러에 매개 변수를 보내고 DataSourceResult를 제한하도록했습니다.
.Filter(filters => { filters.Add(d => d.CompanyId).IsEqualTo(2); })
하지만 ViewContext.RouteData.Values @ 말에서 값으로 하드 코드 (2)를 교체하는 방법을 알아낼 수 없습니다 :
뷰의 데이터 소스 필터,이 작업을 수행 할 수 있습니다 [ "id"] 또는 무엇인가. 컨트롤러에 매개 변수를 전달
는, 나는 다음을 얻을 수 있습니다 :
public ActionResult Divisions_Read([DataSourceRequest]DataSourceRequest request, int id)
{
using (var db = new AppContext())
{
IQueryable<Division> divisions = db.Divisions;
DataSourceResult result = divisions.ToDataSourceResult(request, division => new DivisionViewModel
{
DivisionId = division.DivisionId,
CompanyId = division.CompanyId,
CountryId = division.CountryId,
DivisionName = division.DivisionName
});
return Json(result);
}
}
하지만 내가 어떻게 기본적으로 추가 할 해당 ID를 사용하는 아무 생각이없는 "경우 회사 ID = 아이디"결과에 문.
이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 나는 정말 분명한 것을 놓치고 있는가?
감사합니다.
ETA : 내 연구 mmillican 및 기타 장소에 의해 제안, 읽기 작업을 통해 컨트롤러에 매개 변수를 전달하고, 변경
DataSourceResult result = divisions.ToDataSourceResult(request, division => new DivisionViewModel
에
DataSourceResult result = divisions.Where(c => c.CompanyId == companyId).ToDataSourceResult(request, division => new DivisionViewModel
트릭을했다. 컨트롤러의 여분의 비트는 내가 찾고 있던 것이었지만 어느 곳에서도 찾을 수 없었습니다.
필자는 필터를 사용하여 하나의 해결 방법을 알아 냈지만 읽기 작업을 통해 컨트롤러에 매개 변수를 전달하는 것이보기에 추가 데이터를 반환하지 않기 때문에 더 나은 솔루션입니다. 위의 질문을 컨트롤러의 최종 변경으로 업데이트했습니다. 감사! – DivisionByZero