Jquery 使用包含特殊字符的元素进行远程验证

Jquery 使用包含特殊字符的元素进行远程验证,jquery,validation,asp.net-mvc-3,Jquery,Validation,Asp.net Mvc 3,我正在尝试使用ASP.net MVC 3中内置的远程验证功能,我已经成功使用过几次了。但是,由于页面上的表单元素的名称包含“[”和“]”(主模型的集合),因此我似乎无法使用远程验证 在我的页面上呈现的Html是: <input id="Leads_0__OpenDate" class="datepicker medium hasDatepicker valid" type="text" name="Leads[0].OpenDate" data-val-required="Open Da

我正在尝试使用ASP.net MVC 3中内置的远程验证功能,我已经成功使用过几次了。但是,由于页面上的表单元素的名称包含“[”和“]”(主模型的集合),因此我似乎无法使用远程验证

在我的页面上呈现的Html是:

<input id="Leads_0__OpenDate" class="datepicker medium hasDatepicker valid" type="text"  name="Leads[0].OpenDate" data-val-required="Open Date is required." data-val="true">
但是,由于该字段是Lead集合的一部分,因此会将其作为“Leads[0].OpenDate”发回ValidatePenDate操作,该名称不能放入参数中,因为C#不允许在变量名称中使用“[”或“]”

我能做些什么来让远程验证工作,而不是仅仅编写一些自定义javascript

public ActionResult ValidateOpenDate()
{
    var openDate = Request["Leads[0].OpenDate"];
    ...
}
或者(未经测试,由于括号原因,不确定是否有效):


实际上,第二个案例需要看起来像

    public ActionResult ValidateOpenDate([Bind(Prefix = "Leads[0].OpenDate")] string openDate)
    {
        ...
    }

可能在其他地方听到过,但也在这里记录下来。

非常感谢!我为什么不考虑使用这个请求呢?很遗憾,绑定前缀不起作用,但请求是可以的!
public ActionResult ValidateOpenDate([Bind(Prefix = "Leads[0]")] string openDate)
{
    ...
}
    public ActionResult ValidateOpenDate([Bind(Prefix = "Leads[0].OpenDate")] string openDate)
    {
        ...
    }