ASP.NET MVC를 사용하여 필드 유효성 검사를 구현하는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/16747

  •  08-06-2019
  •  | 
  •  

문제

저는 ASP.NET을 사용하여 공개 웹사이트를 구축하고 있습니다. 공개 사이트에 표시된 항목의 데이터를 입력하기 위해 관리 사이트를 수행해야 하는 결과물의 일부로, 사람들이 ASP를 사용하여 항목의 유효성을 검사하기 위해 어떤 기술이나 절차를 사용하는지 궁금합니다. .NET MVC.

도움이 되었습니까?

해결책

다음을 살펴보세요. JQuery 유효성 검사 플러그인 이 플러그인은 놀랍습니다. 구현이 깔끔하고 AJAX를 통한 원격 검증을 포함하여 필요한 모든 기능을 갖추고 있습니다.

또한 샘플 MVC 컨트롤러 방법을 찾을 수 있습니다. 여기 기본적으로 다음과 같은 JsonResult 작업 유형을 사용합니다.

public JsonResult CheckUserName(string username)
{
    return Json(CheckValidUsername(username));
}

다른 팁

@Chuck - 아직 ASP.NET MVC에서는 AjaxToolKit 컨트롤을 사용할 수 없습니다.ASP.NET 페이지 포스트백 모델에서만 작동합니다.

업데이트:

2008년 8월 20일부터 ASP.NET MVC Framework 내부에서 Ajax Control Toolkit의 스크립트 파일만 사용할 수 있습니다.다음은 풀어 주다.

또한, 여기 튜토리얼이 있습니다 Stephen Walther의 팝업 달력을 만드는 데 사용하는 방법에 대해 알아보세요.

나는 모든 사람이 이 글을 읽는다면 올바른 정보를 얻을 수 있기를 바랍니다.

jQuery 및 DataAnnotationsModelBinder와 함께 xVal을 사용하는 IMO가 가장 좋은 조합입니다.

그러나 때로는 클라이언트 측에서 완전히 확인할 수 없는 유효성 검사 규칙이 있으므로 원격 클라이언트 측 유효성 검사를 사용해야 합니다.

xVal / jQuery.validate를 사용하여 원격 클라이언트 측 유효성 검사를 일반적으로 구현하는 방법을 알아냈습니다.

  • 유효성 검사 규칙은 ASP.NET MVC 모델에만 유지됩니다.
  • 각 유효성 검사 규칙은 한 번만 작성하고 쉽게 테스트할 수 있는 C# 코드로만 작성합니다.JavaScript나 기타 클라이언트측 대응물은 없습니다.
  • xVal 또는 jquery.validate를 분기하거나 수정할 필요가 없습니다.
  • 각각의 새로운 원격 양식 유효성 검사 규칙에 대해 수행해야 할 작업은 이 문서에 표시된 기본 클래스에서 파생되는 것뿐입니다.

나는 썼다 블로그 기사 이것에 대한 모든 세부 사항을 설명합니다.

나는 다음을 사용하는 것을 좋아한다. 실시간 검증 내 ASP.NET MVC 앱 내의 라이브러리입니다.이를 통해 클라이언트와 서버에서 유효성 검사를 수행하는 방법을 설정할 수 있었습니다.이렇게 하면 사용자는 양식을 제출하기 전에 뭔가 잘못되었음을 알게 되고 다른 예외적인 경우에는 서버 측 기능을 사용할 수 있습니다.

나는 유사한 설정을 설정하는 방법에 대해 매우 훌륭한 작업을 수행하는 이 게시물로 시작했습니다.

ASP.NET MVC에 대한 모델 기반 클라이언트측 유효성 검사

나의 길:

Preview 4 릴리스와 함께 제공되는 계정 컨트롤러에 표시된 예를 따르고 있습니다. 여기서 필드는 컨트롤러에서 확인되며 오류가 발생하면 문자열 오류 배열이 집계되어 나중에 표시되기 시작했습니다. 요구.

나 또한 그 생각을 따르고 있다. MVC의 스티븐 월터 그리고 나는 생각한다 이 게시물 다시 제출하기 전에 변경되도록 제출된 데이터로 필드를 다시 채우는 것이 좋습니다.

여러분은 무엇을 사용하시나요?

AjaxToolKit과 함께 제공되는 컨트롤을 살펴보셨나요?저는 MaskedEditExtender와 ValidatorCalloutExtender를 사용해 왔으며 결과에 매우 만족했습니다.

@Dale - 그 문제를 바로잡아주셔서 감사합니다!그 사실을 몰랐습니다(지난 주에 툴킷을 사용하기 시작했습니다).제 제안을 무시해주세요 :)

@:네, 저도 그 게시물을 읽었고 그 게시물을 기반으로 하여 jQuery를 자바스크립트 라이브러리로 사용합니다.SO 팀을 대변할 수는 없지만, 제가 경험한 추측에 따르면 그들은 jquery 내부의 ajax 기능을 사용하여 ajax 요청을 처리할 가능성이 높습니다.실제로 다음과 같은 자바스크립트 라이브러리를 사용하면 손으로 코딩하는 것이 그렇게 나쁜 것은 아닙니다. jQuery, 원기, 그리고 MooTools.그런 다음 작업에 대해 새로 JsonResult ActionResult 반환 값을 사용하고 해당 작업에 대해 Ajax 요청을 만듭니다.이러한 라이브러리는 XmlHttpRequest 객체를 캡슐화하고 Ajax 호출과 브라우저를 안전하게 만드는 것을 쉽게 만듭니다.

당신은 사용할 수 있습니다 .net 유효성 검사 프레임워크 클라이언트/서버 측 유효성 검사를 모두 원하는 경우 codeplex에서.모델에 정의된 규칙을 기반으로 jQuery 유효성 검사 플러그인에 대한 코드를 생성합니다.또한 프레임워크의 "고급" 기능을 사용하면 jQuery 유효성 검사 플러그인의 설정을 수동으로 제어할 수 있습니다.체크아웃 MVC 빠른 시작.

클라이언트 측 유효성 검사와 서버 측 유효성 검사를 혼합하여 사용합니다.

클라이언트측 유효성 검사의 경우, 다니엘 폴라드의 답변 소리인 것 같습니다.클라이언트 측 유효성 검사는 필수는 아니지만 사용자에게 더 좋고 응답성이 뛰어난 경험을 제공합니다.

반면에 서버 측 유효성 검사는 필수입니다.클라이언트의 입력을 절대 신뢰하지 마십시오.Preview 5의 ASP.NET MVC 프레임워크에서 제공하는 기능을 확실히 살펴보겠습니다( Matt Hinze의 답변),

제가 가장 좋아하는 방식은 모델 기반 속성을 사용하여 클라이언트와 서버 유효성 검사를 모두 수행하는 것입니다.나는 이에 대해 짧은 글을 썼고 소스 코드도 공개했습니다. 그러면 기본적으로 다음과 같은 클래스를 만들 수 있습니다.



class User {

    [Required]
    public string Name{get;set;}

    [Email][Required]
    public string Email {get;set;}
}

그리고 클라이언트 유효성 검사를 수행하기 위해 적절한 자바스크립트 코드가 생성될 뿐만 아니라 서버 측 유효성 검사 실행기가 제출된 양식의 유효성을 검사합니다.

게시물을 끝까지 읽어보세요 여기

@ - 걱정 마.그것이 바로 SO의 목적입니다.당신은 뭔가를 배우고 질문하는 사람도 뭔가를 배웁니다.

스택 오버플로에서 AJAX는 어떻게 처리됩니까?JQuery가 그것을 수행합니까?

  • 페이지를 마우스 오른쪽 버튼으로 클릭하세요.
  • 팝업 메뉴에서 '페이지 소스 보기'를 찾으세요.
  • 클릭하세요

:-)

기본 기능을 유지하고 싶지만 확장이 필요한 경우 다음을 살펴보세요. 내 대답은 여기 IDataError에 대한 질문입니다.

기본적으로 저는 더 복잡한 논리를 위해 데이터 주석과 모델바인더를 사용합니다.나는 이것이 꽤 깔끔한 방법이라는 것을 알았고 MS가 제공하는 범위 내에서 머물 수 있게 해주었습니다.

모델 바인더를 사용하지 않고도 모델에 '클래스 수준' 검사를 추가하는 방법을 설명합니다. IDataError - 여기에서 본 것처럼 꽤 서투를 수 있습니다.[필수] 속성이나 기타 사용자 정의 유효성 검사 속성을 계속 사용할 수 있지만 개별 모델 오류를 추가하거나 제거할 수도 있습니다.데이터 주석을 사용하는 방법에 대한 자세한 내용을 보려면 적극 권장합니다. Scott Gu의 이 게시물.

ASP.NET MVC에서 유효성 검사를 구현하는 방법 중 하나는 클라이언트 측 유효성 검사와 함께 데이터 주석을 사용하는 것입니다.이것 기사 엔터티 프레임워크 생성 모델 클래스에 대해 이를 수행할 수 있는 방법을 보여줍니다.

데일 레이건 썼다:

ASP.NET MVC에서는 AjaxToolKit 컨트롤을 사용할 수 없습니다.

스택 오버플로에서 AJAX는 어떻게 처리됩니까?JQuery가 그것을 수행합니까?그의 Coding Horror 게시물에서 JavaScript 닌자의 비밀 Jeff는 Stack Overflow를 작성하는 동안 JQuery 사용에 대해 썼습니다.

확실히 그들은 그것을 손으로 코딩하지 않았습니다.2005년경에 "AJAX"라는 용어가 대중화되었을 때 모든 XMLHttpRequest JavaScript에 대해 한 번 그렇게 했습니다.그것은 악몽이었다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top