0

웹 응용 프로그램에서 MVC의 원격 유효성 검사를 사용하고 있습니다. 나는 Remote[] 유효성 검사를 사용하려고원격 유효성 검사 잘못된 URL

[Remote("EmailExists", "Validation")] 
public string EmailAddress { get; set; } 

속성 때 나는이 이메일 주소는 내 ValidationController에게 도달하는 방법 EmailExists를 호출 할 전망이다. 당신이 data-val-remote-url 보면 대신

<input class="form-control" data-val="true" data-val-remote="'EmailAddress' is invalid." data-val-remote-additionalfields="*.EmailAddress" data-val-remote-url="/IdSrv/Validation/EmailExists" id="EmailAddress" name="EmailAddress" type="text" value=""> 

그러나 같은 렌더링 된 HTML 찾고 뭔가

public class ValidationController : Controller 
{ 
    public JsonResult EmailExists(string emailAddress) 
    { 
     return Membership.GetUser(emailAddress) != null ? 
      Json("true", JsonRequestBehavior.AllowGet) : 
      Json("Email does not exist", JsonRequestBehavior.AllowGet); 
    } 
} 

, 당신은 HTML 실제로

<input class="form-control" data-val="true" data-val-remote="'EmailAddress' is invalid." data-val-remote-additionalfields="*.EmailAddress" data-val-remote-url="/IdSrv/issue/wstrust?controller=Validation&amp;action=EmailExists" id="EmailAddress" name="EmailAddress" type="text" value=""> 
을 렌더링 할 때 완전히 다른 무언가를 렌더링 알

ThinkTecutre ID 공급자를 사용하고 있지만 기본 경로가validat에 의해 설정된 이유가 확실하지 않습니다. 이온이 잘못되었습니다. 내가 잘못된 것을하고 있습니까? 아니면 올바른 위치로 URL을 가리 키도록 변경할 수 있습니까?

답변

0

기본 라우팅 전에 RoutingConfig.cs에 정의 된 맞춤 라우팅이 없는지 확인하십시오.

public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 
} 

은 자세한 내용은 액션 메소드 매개 변수로 링크 아래

public JsonResult EmailExists(string EmailAddress) 
{ 
} 

확인을 속성 이름과 일치하십시오.

http://msdn.microsoft.com/en-us/library/gg508808%28vs.98%29.aspx

http://www.codeproject.com/Tips/669824/Implementing-Remote-Validation-in-MVC

http://www.codeproject.com/Articles/674288/Remote-Validation-in-MVC-Simple-Way-to-Pass-the-F