Удаленная проверка с элементами, содержащими специальные символы - PullRequest
0 голосов
/ 16 июня 2011

Я пытаюсь использовать функцию удаленной проверки, встроенную в 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">

Обычно я просто добавляю это в свою ViewModel для поля OpenDate:

[Remote("ValidateOpenDate", "Opportunity", ErrorMessage = "The open date can not be in the future.")]

Однако, поскольку поле является частьюколлекция Leads, она отправляется обратно в действие ValidateOpenDate как «Leads [0] .OpenDate», которое не является допустимым именем для добавления в параметры, поскольку C # не допускает использование «[» или «]» вимя переменной.

Могу ли я что-нибудь сделать, чтобы удаленная проверка работала, вместо того, чтобы просто написать какой-нибудь пользовательский javascript?

Ответы [ 2 ]

1 голос
/ 21 июля 2011

На самом деле второй случай должен выглядеть как

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

Вероятно, слышал это в другом месте, но просто документировал это и здесь.

0 голосов
/ 16 июня 2011
public ActionResult ValidateOpenDate()
{
    var openDate = Request["Leads[0].OpenDate"];
    ...
}

или (не проверено, не уверен, будет ли это работать из-за скобок):

public ActionResult ValidateOpenDate([Bind(Prefix = "Leads[0]")] string openDate)
{
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...