![](/img/trans.png)
[英]Remote Validation - No url for remote validation could be found mvc 5 C#
[英]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&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.