2012-03-22 3 views
6

가능한 한 간결하게하려고합니다..NET에서 URL에 필터를 추가하는 가장 좋은 방법은 MVC

  • 웹 페이지를 필터링하고 필터링
  • 변경 선별 가능하고 여과 뷰를 공유하거나, 사용자가 북마크 할 수 있도록 URL에 반영되어야 선별 테이블을 포함한다.

질문 : 모든 정렬 및 필터 구문을 URL의 일부로 허용하고 해석하는 사용자 지정 코드 묶음을 작성하지 않고도 쉽게 서버에서 해석/사용하는 효과적인 규칙은 무엇입니까? 그것?

나는 약간의 연구를 해왔고 OData URI 규칙을 보았고 나는 그들이하는 일을 좋아한다. http://www.odata.org/developers/protocols/uri-conventions

MVC 4 웹 API에서 IQueryable을 반환하여 해당 규칙을 사용할 수 있다는 연구가 있습니다. 이것은 하나의 부분을 제외하고는 환상적입니다 ... 나는 지금 RESTful API를 구현하지 않고 있으며, 그것이 모두 작동하는 것으로 보인다. 그렇다면 어떻게 OData와 같은 것을 사용하고 뷰 또는 PartialView를 반환 할 수 있습니까? OData URI 규칙을 C# 개체로 구문 분석 할 무언가가 있습니까?

누군가가이 문제 또는 제안에 대한 통찰력을 가지고 있다면, 나는 모두 귀입니다.

+0

MVC 4 Web Api를 말할 때 Asp.Net을 의미합니까? 그렇다면 url 매개 변수는 자동으로 액션 메소드에 전달되고 액션 메소드의 서명처럼 사용자가 선언 한 유형으로 해석되고 해석됩니다. –

+0

예, 그렇다면 ASP.NET MVC에 대해 설명하고 매개 변수가 액션 메소드와 함께 작동하는 방식을 알고 있습니다. 문제는 URL에 복잡한 필터를 넣을 때 문제가 발생한다는 것입니다. 나는 그것을 처리하는 컨벤션/프레임 워크를 기대했다. MVC 4의 웹 API는 정말로 나를 다루기에 가깝지만 데이터 API에 중점을두고 있으며 일반 뷰와 PartialVies가 필요합니다. – Zifik

+0

처음 필터 목록을 어떻게 생성합니까? 데이터베이스에 저장되어 있습니까? 데이터 세트에서 동적으로 생성됩니까? 페이지에 하드 코드 된? – Bobson

답변

0

질문의 URL 규칙 부분에 관해서는 OData를 사용하여 질문에 답변 한 것 같습니다. 이 데이터를 C# 객체로 가져 오는 경우 다음 접근 방식을 사용합니다.

조치 매개 변수를 사용하여 URL 매개 변수를 interperet하고이를 C# 객체로 구문 분석하십시오. 작업 필터에서 URL 매개 변수를 경로 데이터에 추가하면 C# 개체를 작업에서 사용할 수 있습니다.

ASP.NET MVC Pass object from Custom Action Filter to Action

가 Telerik MVC 그리드를 살펴 보자, 그들은 거의 당신이 무엇을 요구 않는 GridAction 액션 필터를 사용합니다.

0

나는 맞춤 모델 바인딩을 살펴볼 것이다. 좋은 개요는 여기에서 찾을 수 있습니다 : http://weblogs.asp.net/nmarun/archive/2010/02/25/asp-net-mvc-model-binding.aspx

일반적으로 양식의 POST 요청에 사용되지만 GET 요청에도 사용할 수 없습니다. 당신의 컨트롤러의 액션에서

public class TableParameters { 
    public string TableFilter { get; set; } 
} 
  • 로 모델을 추가 :

    1. 이 속성으로 매개 변수를 정렬/필터와 함께 새로운 모델 클래스를 만듭니다에

      기본적으로, 당신의 접근 방식이되어야한다 매개 변수는

      public ActionResult TableAction(TableParameters parameters) { /* Action logic */ } 
      
    2. 일에 매개 변수를 설정 말에 의한 전자 URL :

      /Controller/TableAction?TableFilter=[your-filter-string] 
      

    매개 변수는 쿼리 문자열의 값으로 채워 속성을해야합니다 귀하의 행동에 반대.

  • +0

    모델 바인딩의 보안 측면 http://odetocode.com/blogs/scott/archive/2012/03/11/complete-guide-to-mass-assignment-in-asp-net-mvc.aspx – infl3x

    관련 문제