2014-03-10 4 views
0

У меня есть этот Создать вид:Как проверить INT значение из SQL Express в MVC 4

<div class="editor-field"> 
@Html.TextBoxFor(model => model.First, new { @id = "id1"})  
@Html.ValidationMessageFor(model =>model.First)  
</div> 

и кнопку отправки после TextBox:

<input type="submit" value="Create" /> 

часть из модели класс выглядит следующим образом:

public int? First { get; set; } 

, и это мой web.config:

<add key="ClientValidationEnabled" value="true" /> 
<add key="UnobtrusiveJavaScriptEnabled" value="true" /> 

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

Я понимаю, что часть с ModelState.AddModelError, но то, что я не могу получить arround, это: каждый раз, когда я проверяю значение null, я получаю результат не из базы данных, но он проверяет, является ли форма TextBox пустым или нет.

Пожалуйста, помогите. Заранее спасибо.

ответ

0

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

В этом случае вы можете выполнить запрос, чтобы проверить это, как только страница уже отправлена ​​... Если ваше условие проверки не выполняется, вы добавляете ошибку вручную и возвращаете тот же вид. Для клиента он будет выглядеть так же, как если бы ошибка была воспринята ненавязчивой проверкой.

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

ModelState.AddModelError("First", "Number in Use - Bad User!"); 

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

return View(model); 
0

Вы можете в проверке контроллера вручную с просьбой дб для записи с First значения. что-то вроде:

или

вы можете создать свой собственный валидатор, как в этом ответе: Creating a custom validation through DataAnnotations? другой пример здесь: MSDN