gpt4 book ai didi

validation - ASP.NET MVC 3 远程验证

转载 作者:行者123 更新时间:2023-12-03 15:12:47 29 4
gpt4 key购买 nike

我在我的项目路径中有一个验证 Controller ,我试图在一个区域内使用模型属性上的以下属性...

    [Remote("IsValidUserName", "Validation", "", ErrorMessage = "Invalid username")]

但是当它被呈现时,验证是针对与页面相同区域内的 Controller “验证”的“IsValidUserName”操作,而不是在根区域内......

data-val-remote-url="/Members/Validation/IsValidUserName"

任何帮助,将不胜感激。

谢谢。

最佳答案

不幸的是,这就是该属性的实现方式。这是该属性的构造函数的摘录:

public RemoteAttribute(string action, string controller, string areaName) : this()
{
if (string.IsNullOrWhiteSpace(action))
{
throw new ArgumentException(MvcResources.Common_NullOrEmpty, "action");
}
if (string.IsNullOrWhiteSpace(controller))
{
throw new ArgumentException(MvcResources.Common_NullOrEmpty, "controller");
}
this.RouteData["controller"] = controller;
this.RouteData["action"] = action;
if (!string.IsNullOrWhiteSpace(areaName))
{
this.RouteData["area"] = areaName;
}
}

请注意 IsNullOrWhiteSpace测试 areaName最后这杀死了一切?

您可以通过编写自定义远程属性来修复它:
public class MyRemoteAttribute : RemoteAttribute
{
public MyRemoteAttribute(string action, string controller, string area)
: base(action, controller, area)
{
this.RouteData["area"] = area;
}
}

进而:
[MyRemote("IsValidUserName", "Validation", "", ErrorMessage = "Invalid username")]
public string Username { get; set; }

现在正确 data-val-remote-url="/Validation/IsValidUserName"会生成。

关于validation - ASP.NET MVC 3 远程验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5289763/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com