首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用无效变量名称的jQuery验证远程:如何修复?

使用无效变量名称的jQuery验证远程:如何修复?
EN

Stack Overflow用户
提问于 2018-08-24 06:10:30
回答 1查看 0关注 0票数 0

我正在使用jQuery Validation 进行远程(https://jqueryvalidation.org/remote-method/)验证。

我试图在MVC中调用我的服务器端代码,但问题是我的变量是在嵌套类中:

public class Customer
{
    public State HouseState {get;set;}
}

public class State
{
    public string Name {get;set;}
}

在我的* .cshtml中我有这个:

@Html.TextBoxFor(m => m.HouseState.Name, new { placeholder = "State Name"})

我正在添加验证:

    $.validator.addMethod("verify", verify);

    $('#HouseState_Name').rules('add', {
        verify: true,
        remote: '@Url.Content("~/Home/Validate")',
        messages: { verify: "No!" }
    });

在这种情况下,它将生成如下的GET请求:

http://localhost/Home/Validate?HouseState.Name=CA

问题是它期望我的服务器中House.Name的变量是C#中的无效变量名。

有没有办法在客户端中自定义此变量或为服务器中的变量创建别名?我尝试过使用FormCollection,它有效,但远非完美。

public JsonResult Validate(FormCollection form)
{
    ...
}

我想要一些像这样工作的方法:

public JsonResult Validate(string stateName)
{
    ...
}
EN

回答 1

Stack Overflow用户

发布于 2018-08-24 15:14:42

可以使用BindAttributePrefix属性来有效地“剥离”前缀。

public JsonResult Validate([Bind(Prefix="HouseState.Name")]string Name)

在绑定时,name="HouseState.Name"只是Name

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档