【问题标题】:Remote Validator on Model in MVC4 to /api/ Route在 MVC 4 中对模型进行远程验证到 /api/ 路由
【发布时间】:2012-11-10 09:49:35
【问题描述】:

如何通过数据注释配置远程验证器以在 /api/{controller} 而不是 /{controller}/{action} 进行调用?

我的模特:

public class MyModel
{
    [Required]
    public string Name { get; set; }
    [EmailAddress(ErrorMessage="We need a valid email."), Remote(....)]
    public string Email { get; set; }
}

无论我尝试什么,远程验证器调用的 URL 都是 /foo/bar,而不是仅仅访问 /api/foo。

远程验证器是否支持 WebAPI?

如果可能的话,我希望我的电子邮件唯一性检查使用 .NET 验证器(而不是必须手动执行),我的表单是通过 AJAX 提交的,我想在提交表单之前验证电子邮件,并且使用指向 API 控制器的远程验证器似乎是一种自然的选择。

【问题讨论】:

    标签: c# .net asp.net-mvc asp.net-mvc-4 asp.net-web-api


    【解决方案1】:

    无法使用 Web API 控制器。这是RemoteAttribute 的限制。为避免与 MVC 控制器发生冲突,要匹配 Web API 路由,您必须包含 httproute 键,而 RemoteAttribute 不会这样做。

    您应该能够继承 RemoteAttribute 并覆盖 GetUrl 以使其工作。

    【讨论】:

    • 你能分享一些代码吗?我现在真的很坚持
    猜你喜欢
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 2017-03-10
    • 2018-07-19
    相关资源
    最近更新 更多