Сообщение проверки - PullRequest
0 голосов
/ 19 марта 2009

У меня проблема с настройкой сообщения проверки. У меня есть две модели в одном элементе управления, и обе модели имеют одно и то же свойство «количество».

Таким образом, настройка проверки для одного Model.amount будет отражаться и для другого Model.amount. Я пытался передать разные идентификаторы для обоих, но не работает.

<%= Html.TextBox("amount", Model.amount, new { id = "Pamount" })%>
    <%=Html.ValidationMessage("Pamount", " ")%>
<%= Html.TextBox("amount", Model.amount, new { id = "Eamount" })%>
    <%=Html.ValidationMessage("Eamount", " ")%>

и в действии я устанавливаю

if (obj.amount.ToString() == "0")
            modalState.AddModelError("Pamount", "");

но проверка применима и к Eamount

Что мне делать?

Ответы [ 2 ]

0 голосов
/ 19 марта 2009

Подсветка проверки применяется на основе имени элемента управления. Имя должно отражать имя свойства, чтобы привязка модели работала. Таким образом, вы не можете иметь два элемента управления с одинаковым именем и правильно работать, чтобы подсветка проверки работала. Так что вам нужно дать элементам управления разные имена. Есть два способа сделать это:

  1. Создайте модель презентации с двумя разными свойствами для разных сумм. Преобразуйте модель представления в / из актуальных объектов, которые вы обновляете при отображении формы или обработке сообщения, соответственно.

  2. Создайте одну модель со вспомогательными свойствами для обоих объектов, а затем получите доступ к двум величинам, используя точечную запись.

Как это:

<%= Html.TextBox("Foo.amount", Model.Foo.amount, [...]
<%= Html.TextBox("Bar.amount", Model.Bar.amount, [...]
0 голосов
/ 19 марта 2009

Я думаю, что при добавлении ошибки модели вы получаете доступ к полю по имени, а не по идентификатору. Итак, вы хотели бы сделать

ModelState.AddModelError("amount", "");

Кроме того, я бы порекомендовал дать текстовым полям разные имена, чтобы вы не добавляли ошибку к ним обоим, если только одна вызывает ошибку, что может вызвать некоторую путаницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...