C# 远程验证-找不到用于远程验证的url mvc 5 C

C# 远程验证-找不到用于远程验证的url mvc 5 C,c#,validation,asp.net-mvc-5,remote-validation,C#,Validation,Asp.net Mvc 5,Remote Validation,我目前正在开发一个4层应用程序,核心、数据、共享、用户界面。目前,我们的所有模型都位于共享项目内,共享项目是模型之一的类库。我们有以下实现: [Remote("UsernameUnique", "Register")] [Required] public string Username { get; set; } 这当前指向一个Json方法,该方法位于注册控制器内部,注册控制器是UI项目的一部分,如图所示 public JsonResult UsernameUnique(UserRegistr

我目前正在开发一个4层应用程序,核心、数据、共享、用户界面。目前,我们的所有模型都位于共享项目内,共享项目是模型之一的类库。我们有以下实现:

[Remote("UsernameUnique", "Register")]
[Required]
public string Username { get; set; }
这当前指向一个Json方法,该方法位于注册控制器内部,注册控制器是UI项目的一部分,如图所示

public JsonResult UsernameUnique(UserRegistrationPartOne model)
{
    var t = model;
    return Json(false, JsonRequestBehavior.AllowGet);
}
但是当我运行这个项目并导航到注册部分时,它抛出了一个错误:找不到用于远程验证的url。我一直在看以下内容,只是确认我没有遗漏任何内容:


根据他们所做的和我所做的几乎相同,我能想到的唯一一件会导致这个问题的事情是,模型位于共享项目中,而它需要位于UI项目中的视图中?或者可能是别的什么

您的方法需要

public JsonResult UsernameUnique(string Username)
RemoteAttribute发回属性的值,而不是模型

旁注:如果需要发回模型的其他属性以进行验证,则可以使用RemoteAttribute的AdditionalFields属性

如果您想添加其他字段,可以添加到操作中,如

public JsonResult UsernameUnique(string userName, FieldType additionalValue)
并更新远程属性,如下所示:

[Remote("UsernameUnique", "Register", AdditionalFields = "YourPropName"))]

因为它正在寻找带有字符串参数的操作我已将我的远程属性更改为与您的相同,唯一的区别是我已将YourPropName更改为Username,还更新了我的JsonResult,使其与您的相同,但我仍然收到相同的错误,我是否需要在正在使用此功能的区域注册中指定任何路线?您不需要将用户名添加为附加字段。默认情况下,用户名作为第一个参数传递。如果需要发送更多数据,则应使用其他字段。如果您只想发送用户名,请不要更改属性,只更改第一行的操作如果仍然有问题,请尝试手动调用验证方法,然后查看结果:/register/UsernameUnique/?username=something我刚刚将其放入URL中,它成功命中,当它得到视图时,它会抱怨点击用户名声明并抛出错误消息我已经做了两个答案建议的事情,但是我仍然得到相同的错误。你有一个解决方案吗?如果是这样,您需要使用第三个参数指定区域-[RemoteUsernameUnique,Register,yourAreaName]-参考这似乎完成了技巧,谢谢,当我运行它并输入用户名并导航出框时,即使用tab,它不会触发吗?根据HTML,看起来这是不是有什么原因使id属性从默认值更改为Username?-始终最好不要更改id,但不要确定它是否可能导致问题
[Remote("UsernameUnique", "Register", AdditionalFields = "YourPropName"))]