繁体   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