簡體   English   中英

遠程驗證不正確的URL

[英]Remote Validation Incorrect URL

我在Web應用程序中使用了MVC的遠程驗證。 當我嘗試使用Remote[]驗證屬性時

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

我希望這個電子郵件地址可以到達我的ValidationController並調用方法EmailExists

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/Validation/EmailExists" id="EmailAddress" name="EmailAddress" type="text" value="">

但是,相反,如果您查看data-val-remote-url您會注意到,當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 Identity Provider,但是我不確定為什么Remote驗證設置的默認路由不正確。 我是在做錯什么,還是可以更改一些以將URL指向正確的位置?

確保沒有默認路由之前在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/zh-cn/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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM