2016-04-11 8 views
1

私は、ASP.NETコアRC1を使用していると私は次のモデルがあります:リモート検証

public class AccountSignUpModel { 

    [EmailAddress(ErrorMessage = "Email is invalid")] 
    [Required(ErrorMessage = "Email is required")] 
    [Remote("IsEmailAvailable", "Validation", ErrorMessage = "Email already used", HttpMethod = "Get")] 
    public String Email { get; set; } 

} 

をそして、私は、次のコントローラがあります。

public class ValidationController : Controller { 
    [HttpGet] 
    public IActionResult IsEmailAvailable(String email) { 
    return Json(false); 
    } 
} 

を電子メールでフォームを提出すると、常に有効になります。

IsEmailAvailableアクション内にブレークポイントを配置しましたが、起動しません。

これはどうして起こりますか?

+0

戻り値の型を 'bool'にして、' true'または 'false'を返すか、戻り値の型を' JsonResult'として返しましたか? –

+0

'String email'の代わりに' String Email'という文字列を使ってみましたか? – Dumisani

+0

@Dumisani私は電子メールで試しただけですが、問題は解決しません。 –

答えて

0

[HttpPost]動詞ではなく[HttpGet]動詞でアクションをマークしました。また、アクションのパラメータはAccountSignUpModel型でなければなりません。それ以外の場合、検証ルールは機能しません。

+0

私はあなたの提案を試み、動詞をHttpPostに変更し、アクションメソッドのパラメータとしてAccountSignUpModelを追加しましたが、動作しませんでした。モデルは常に有効であり、ブレークポイントは起動しません。私は何が起こっているのか分かりません... –

+0

あなたは私たちにフォームマークアップを表示できますか? – davidferguson

関連する問題