Многоразовая дистанционная проверка MVC 3 с поиском БД - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть приложение MVC 3, в котором много целочисленных полей в форме. Все они требуют проверки диапазона, но диапазоны существуют в таблице в моей базе данных. Поэтому я хотел бы создать повторно используемый инструмент удаленной проверки, который будет искать минимальное и максимальное значения и возвращать проверку в представление.

Я обновляю это с помощью некоторого примера кода того, что я хотел бы сделать, чтобы мой запрос мог уточнить, что я ищу:

В моем классе проверки:

        [Remote("CheckIntegerRange", "Validation", ErrorMessage = "Value outside of range")]
    public object UW1_Web_Tension_SP { get; set; }

    [Remote("CheckIntegerRange", "Validation", ErrorMessage = "Value outside of range")]
    public object UW2_Web_Tension_SP { get; set; }

    [Remote("CheckIntegerRange", "Validation", ErrorMessage = "Value outside of range")]
    public object UW3_Web_Tension_SP { get; set; }

В моем ValidationController я пытался создать функцию с несколькими параметрами, но я не думаю, что смогу - однако я думаю, что это показывает, что я пытаюсь сделать более четко:

        public class ValidationController : Controller 
    {
        public JsonResult CheckIntegerRange(int integer, string EntityName, string AttributeName)
        {
            var result = false;
            int MinInteger = 0;
            int MaxInteger = 100;

            //declare recipe entities
            var context = new MadicoRecipeEntities();

            //set sql statements and get description, etc from attributes view
            var esqlIntegerAttributeDetails = "SELECT VALUE c FROM MadicoRecipeEntities.v_AttributeIntegerRangeDetails AS c " +
                "WHERE c.EntityName = '" + EntityName + "' AND c.Attribute = '" + AttributeName + "'";
            var queryAttributeDetails = context.CreateQuery<v_AttributeIntegerRangeDetails>(esqlIntegerAttributeDetails);
            var RecipeAttributes = queryAttributeDetails.ToList();

            foreach (var AttributeDetails in RecipeAttributes)
            {
                MinInteger = AttributeDetails.Min;
                MaxInteger = AttributeDetails.Max;
            }

            return Json(result, JsonRequestBehavior.AllowGet);
        }
    }

Я нашел следующий пост на форумах asp.net, который рассмотрел мое первое препятствие - передачу разных именованных атрибутов одному и тому же валидатору. Однако в этом примере имя передается в общем виде - мне нужно иметь имя для запроса таблицы, чтобы получить применимые минимальные и максимальные диапазоны.

http://forums.asp.net/t/1625928.aspx/3/10

Кто-нибудь может указать мне правильное направление?

Спасибо!

1 Ответ

0 голосов
/ 19 ноября 2011

Это называется удаленной проверкой!Вот пример: удаленная проверка

...