powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC: обработка исключения в контроллере
25 сообщений из 406, страница 14 из 17
MVC: обработка исключения в контроллере
    #38773072
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruskyANAЧетвёртое: до вызова IValidatableObject.Validate дело вообще не дойдёт, т.к. "Password is required".
Это уже детали. Я тебе рассказал идею, разжевал её во всех плоскостях, ты выклянчил у меня код. А теперь начинаешь какие-то цепляться к какой-то ерунде. Тебе написать полностью рабочее решение? Ты реально дурак?Ты уже написал 100% рабочее решение. Каждый может убедиться в его работоспособности, наример так:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<!DOCTYPE HTML>
<html>  
<head>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
</head>  
<body>
  <input class="email" type="text" value="liar@msu.is" />
  <script>
    var msuIsLiar;

    msuIsLiar = $(".email").text();
    alert('Using .text(): ' + msuIsLiar);

    msuIsLiar = $(".email").val();
    alert('Using .val(): ' + msuIsLiar);
  </script>
</body>
</html>

Тынц

А дурак я потому, что столько времени потратил, чтобы вывести тебя на чистую воду. А смысл?
Ты как был упёртым equus asinus, им и остался.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773078
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAТы уже написал 100% рабочее решение. Каждый может убедиться в его работоспособности, наример так
Ты уже ляпнул чушь про anti-forgery form field "__RequestVerificationToken", думаю, хватит. Очередная тупость, которая не поддается здравой логике.

skyANAА дурак я потому, что столько времени потратил, чтобы вывести тебя на чистую воду. А смысл?
Ты как был упёртым equus asinus, им и остался.
Тут профит только один, в очередной раз показать всем, что мыслить ты не умеешь. Тебе объяснили, как можно делать валидацию 4 способами (классический POST, асинхронные запрос (post + ajax) и Remote). Ты продолжаешь жечь напалмом и стоить из себя идиота. И так в каждом топике.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773083
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruskyANAТы уже написал 100% рабочее решение. Каждый может убедиться в его работоспособности, наример так
Ты уже ляпнул чушь про anti-forgery form field "__RequestVerificationToken", думаю, хватит. Очередная тупость, которая не поддается здравой логике.После того как я тебе сказл про ошибку, ты по тихому избавился от атрибута ValidateAntiForgeryToken в своём 100% рабочем решении, и имеешь наглость обвинять меня в тупости?
Не красиво, ой как не красиво с твоей стороны.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773086
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruТут профит только один, в очередной раз показать всем, что мыслить ты не умеешь. Тебе объяснили, как можно делать валидацию 4 способами (классический POST, асинхронные запрос (post + ajax) и Remote). Ты продолжаешь жечь напалмом и стоить из себя идиота. И так в каждом топике.Ты так и не предоставил рабочего решения с твоим хвалённым Register: IValidatableObject черещ ajax. Это только на словах у тебя с ним и так можно, и сяк.
А на деле у тебя не вышло, не смотря на то, что ты несколько раз, что решение твоё 100% работает.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773088
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAcodearticles.ruпропущено...
Ты уже ляпнул чушь про anti-forgery form field "__RequestVerificationToken", думаю, хватит. Очередная тупость, которая не поддается здравой логике.После того как я тебе сказл про ошибку, ты по тихому избавился от атрибута ValidateAntiForgeryToken в своём 100% рабочем решении, и имеешь наглость обвинять меня в тупости?
Не красиво, ой как не красиво с твоей стороны.
Где я от него избавился, ты в вакууме?
Вот атрибуты метода контроллера, всё работает, дурилко [HttpPost, AllowAnonymous, ValidateAntiForgeryToken]
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773091
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruskyANAпропущено...
После того как я тебе сказл про ошибку, ты по тихому избавился от атрибута ValidateAntiForgeryToken в своём 100% рабочем решении, и имеешь наглость обвинять меня в тупости?
Не красиво, ой как не красиво с твоей стороны.
Где я от него избавился, ты в вакууме?Вот тут уже избавился: 16687039 .
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773092
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAcodearticles.ruТут профит только один, в очередной раз показать всем, что мыслить ты не умеешь. Тебе объяснили, как можно делать валидацию 4 способами (классический POST, асинхронные запрос (post + ajax) и Remote). Ты продолжаешь жечь напалмом и стоить из себя идиота. И так в каждом топике.Ты так и не предоставил рабочего решения с твоим хвалённым Register: IValidatableObject черещ ajax. Это только на словах у тебя с ним и так можно, и сяк.
А на деле у тебя не вышло, не смотря на то, что ты несколько раз, что решение твоё 100% работает.
Я уже все способы перечислил, как можно решить задачу. А бегать за тобой, подтирать код, разжевывать буквы, нет никакого желания. Могу написать, если конечно признаешься в своей тупости. По рукам?
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773093
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruВот атрибуты метода контроллера, всё работает, дурилко [HttpPost, AllowAnonymous, ValidateAntiForgeryToken]Проект выкладывай. Пока только в твоём больном воображении что-то у тебя работает.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773094
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAcodearticles.ruпропущено...

Где я от него избавился, ты в вакууме?Вот тут уже избавился: 16687039 .
Ну ты ламер

Это вообще другой уже код. Это решение на чистом $.ajax, а не на $.post

Ты читаешь жопой? Вот тут я написал, $.post работает со штатным методом (с ValidateAntiForgeryToken) 16686702
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773095
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAcodearticles.ruВот атрибуты метода контроллера, всё работает, дурилко [HttpPost, AllowAnonymous, ValidateAntiForgeryToken]Проект выкладывай. Пока только в твоём больном воображении что-то у тебя работает.
Я выложил код. Проект сам собери и осознай стою ничтожную тупость.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773096
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruskyANAпропущено...
Ты так и не предоставил рабочего решения с твоим хвалённым Register: IValidatableObject черещ ajax. Это только на словах у тебя с ним и так можно, и сяк.
А на деле у тебя не вышло, не смотря на то, что ты несколько раз, что решение твоё 100% работает.
Я уже все способы перечислил, как можно решить задачу. А бегать за тобой, подтирать код, разжевывать буквы, нет никакого желания. Могу написать, если конечно признаешься в своей тупости. По рукам?Слив засчитан.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773097
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAcodearticles.ruпропущено...

Я уже все способы перечислил, как можно решить задачу. А бегать за тобой, подтирать код, разжевывать буквы, нет никакого желания. Могу написать, если конечно признаешься в своей тупости. По рукам?Слив засчитан.
Слив засчитан.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773102
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruskyANAпропущено...
Проект выкладывай. Пока только в твоём больном воображении что-то у тебя работает.
Я выложил код. Проект сам собери и осознай стою ничтожную тупость.Какое же ты трепло.

Твой код не работает. Тынц .
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773105
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAcodearticles.ruпропущено...

Я выложил код. Проект сам собери и осознай стою ничтожную тупость.Какое же ты трепло.

Твой код не работает. Тынц .

Какая же ты тупица. Мой код 100% работает 16685710
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773121
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скианочка, а вот тебе хук с правой ($.ajax)

AccountController
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
[HttpPost, AllowAnonymous, ValidateAntiForgeryToken]
public ActionResult RegisterAjax(RegisterViewModel model)
{
    var errors = new Dictionary<string, string>();

    if (!ModelState.IsValid)
    {
        var messages = ModelState.Values.SelectMany(v => v.Errors);
    }
        
    return new JsonResult { Data = new { Errors = errors } };
}



Register.cshtml
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
@model WebApplication15.Models.RegisterViewModel
@{
    ViewBag.Title = "Register";
}

<h2>@ViewBag.Title.</h2>

@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
    @Html.AntiForgeryToken()
    <h4>Create a new account.</h4>
    <hr />
    @Html.ValidationSummary("", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
        <div class="col-md-10">
            @Html.TextBoxFor(m => m.Email, new { id = "email", @class = "form-control" })
        </div>
    </div>
    <div class="form-group">
        @Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
        <div class="col-md-10">
            @Html.PasswordFor(m => m.Password, new { id = "p", @class = "form-control" })
        </div>
    </div>
    <div class="form-group">
        @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" })
        <div class="col-md-10">
            @Html.PasswordFor(m => m.ConfirmPassword, new { id = "p2", @class = "form-control" })
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input id="save" type="submit" class="btn btn-default" value="Register" />
        </div>
    </div>
}

<script>
    $(document).ready(function () {
        $("#save").click(function () {
            var model = { Email: $("#email").val(), Password: $("#p").val(), ConfirmPassword: $("#p2").val() };
            $.ajax({
                url: "@Url.Content("~/Account/RegisterAjax")",
                type: "POST",
                dataType: 'json',
                data: JSON.stringify(model),
                contentType: "application/json; charset=utf-8",
                cache: false,
                success: function (result) {
                    //var validator = $("#registerForm").validate();
                    //validator.showErrors(result.Errors);
                }
            });
        });
    });
</script>



RegisterViewModel
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public class RegisterViewModel : IValidatableObject
{
    [Required, EmailAddress, Display(Name = "Email")]
    public string Email { get; set; }

    [Required, DataType(DataType.Password), Display(Name = "Password")]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    public string Password { get; set; }

    [DataType(DataType.Password), Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (EmailExists(Email))
        {
            yield return new ValidationResult("Такой email уже существует");
        }
    }

    public bool EmailExists(string email)
    {
        return true;
    }
}



Только сцуко не говори, что тебя опять обманули. Это
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773131
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruМой код 100% НЕ работает 16685710
1. мы получим ошибку: The required anti-forgery form field "__RequestVerificationToken" is not present;
2. $(".email").text() вернёт пустую строку, а не значение инпута, т.к. для этого надо использовать метод .val();
3. JSON.stringify(model) не замапится в модель, т.к. надо передавать Email=test@test.tu, а не { "Email": "test@test.tu" };
4. Даже, если данные будут переданы на сервер, то до вызова IValidatableObject.Validate дело не дойдёт, т.к. согласно документации, данный метод вызывается после всех проверок, которые не будут пройдены, т.к. в модели нет ни пароля, ни подтверждения пароля, а они являются обязательными полями;
5. Но даже бы если метод IValidatableObject.Validate отработал, в ответ мы бы получили полностью отрендеренную страницу в виде HTML, и пришлось бы этот HTML парсить, чтобы выделить нужное нам сообщение.

Любой желающий может проверить перечисленные пункты, создав в Visual Studio проект по шаблону ASP.NET MVC Internet Application, и вставив туда код от МСУ.

C# код в метод Register(RegisterModel model) контроллера AccountController .
JavaScript код в Register.cshtml после @Scripts.Render("~/bundles/jqueryval") .
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773159
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAcodearticles.ruМой код 100% НЕ работает 16685710
1. мы получим ошибку: The required anti-forgery form field "__RequestVerificationToken" is not present;
2. $(".email").text() вернёт пустую строку, а не значение инпута, т.к. для этого надо использовать метод .val();
3. JSON.stringify(model) не замапится в модель, т.к. надо передавать Email=test@test.tu, а не { "Email": "test@test.tu" };
4. Даже, если данные будут переданы на сервер, то до вызова IValidatableObject.Validate дело не дойдёт, т.к. согласно документации, данный метод вызывается после всех проверок, которые не будут пройдены, т.к. в модели нет ни пароля, ни подтверждения пароля, а они являются обязательными полями;
5. Но даже бы если метод IValidatableObject.Validate отработал, в ответ мы бы получили полностью отрендеренную страницу в виде HTML, и пришлось бы этот HTML парсить, чтобы выделить нужное нам сообщение.

Любой желающий может проверить перечисленные пункты, создав в Visual Studio проект по шаблону ASP.NET MVC Internet Application, и вставив туда код от МСУ.

C# код в метод Register(RegisterModel model) контроллера AccountController .
JavaScript код в Register.cshtml после @Scripts.Render("~/bundles/jqueryval") .

1. Мы не получим ошибку The required anti-forgery form field "__RequestVerificationToken" is not present;
2. $(".email").text() не играет роли, я тебе уже 10 раз об этом писал. $.post постит форму, а не $(".email").text()
3. JSON.stringify(model) и не должна мапиться в модель, мапиться в модель будет вся форма. Тоже писал об этом. Это обычный огрызок кода, который нужно выкинуть. Но так или иначе он 100% работает
4. Ну так и пусть идет валидация всего класса. Пусть пользователь всё вводит, а потом мы отвалидируем. Если ты хочешь более гибкого решения, чтобы не зависеть от остальной валидации, то сделай вторую модель IValidatableObject и реализуй в ней проверку на email. И дергай её аяксом. Это всё уже дополнительная логика, которая не обсуждалась изначально. И тем не менее, эта логика отлично ложится в IValidatableObject
5. Я тебе еще раз повторяю, не нужно ничего парсить. Выше я пример дал, валидаторы штатно отработают. Если нужна гибкая динамика, выше я дал пример, как рендерить словарь ошибок в валидаторе формы через аякс. Опять же, штатные валидаторы рулят.

Купи уже мозг себе. Если ты там референсы скриптов не можешь осилить, это не мои проблемы.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - My ASP.NET Application</title>
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/jqueryval")
    @Scripts.Render("~/bundles/bootstrap")
</head>
<body>
    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
            </div>
            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li>@Html.ActionLink("Home", "Index", "Home")</li>
                    <li>@Html.ActionLink("About", "About", "Home")</li>
                    <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
                </ul>
                @Html.Partial("_LoginPartial")
            </div>
        </div>
    </div>
    <div class="container body-content">
        @RenderBody()
        <hr />
        <footer>
            <p>&copy; @DateTime.Now.Year - My ASP.NET Application</p>
        </footer>
    </div>

    
</body>
</html>
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773189
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ru1. Мы не получим ошибку The required anti-forgery form field "__RequestVerificationToken" is not present;
2. $(".email").text() не играет роли, я тебе уже 10 раз об этом писал. $.post постит форму, а не $(".email").text()
3. JSON.stringify(model) и не должна мапиться в модель, мапиться в модель будет вся форма. Тоже писал об этом. Это обычный огрызок кода, который нужно выкинуть. Но так или иначе он 100% работает
4. Ну так и пусть идет валидация всего класса. Пусть пользователь всё вводит, а потом мы отвалидируем. Если ты хочешь более гибкого решения, чтобы не зависеть от остальной валидации, то сделай вторую модель IValidatableObject и реализуй в ней проверку на email. И дергай её аяксом. Это всё уже дополнительная логика, которая не обсуждалась изначально. И тем не менее, эта логика отлично ложится в IValidatableObject
5. Я тебе еще раз повторяю, не нужно ничего парсить. Выше я пример дал, валидаторы штатно отработают. Если нужна гибкая динамика, выше я дал пример, как рендерить словарь ошибок в валидаторе формы через аякс. Опять же, штатные валидаторы рулят.

на счёт пунктов 2-4, скайана прав. придётся признать.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773190
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruЕсли ты хочешь более гибкого решения, чтобы не зависеть от остальной валидации, то сделай вторую модель IValidatableObject и реализуй в ней проверку на email. И дергай её аяксом. Это всё уже дополнительная логика, которая не обсуждалась изначально. И тем не менее, эта логика отлично ложится в IValidatableObjectНичего она туда отлично не ложиться.

Ты предлагаешь создать отдельный класс с отдельным полем, для проверки на валидность этого самого поля. Что-то типа:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class LoginModel: IValidatableObject
{
        public string Login { get; set; }

        public System.Collections.Generic.IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
        {
            if (userRepository.ExistsLogin(this.Login))
            {
                yield return new ValidationResult("Login already exists");
            }
        }
}


Причём, чтобы обработать результат, надо будет ещё и ModelState проверять и перебирать.
Причём необходимость валидировать RegisterModel при этом не отменяется.

Получаем больше кода, да ещё и дублирование. По сравнению с тем, что я предлагал.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773191
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и 5-ый тоже прав. и 1-ый тоже, так как пост.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773200
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ru,

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<script>
    $(document).ready(function () {
        $("#save").click(function () {
            var model = { Email: $("#email").val(), Password: $("#p").val(), ConfirmPassword: $("#p2").val() };
            $.ajax({
                url: "@Url.Content("~/Account/RegisterAjax")",
                type: "POST",
                dataType: 'json',
                data: JSON.stringify(model), // ОШИБКА!!! это данные JSON, окгда требуется x-www-form-urlencoded
                contentType: "application/json; charset=utf-8", // ПЛЕВАТЬ, ВСЁ РАВНо надо x-www-form-urlencoded
                cache: false,
                success: function (result) {
                    //var validator = $("#registerForm").validate();
                    //validator.showErrors(result.Errors);
            // чёйто здесь?
                }
            });
        });
    });
</script>
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773205
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ru,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public class RegisterViewModel : IValidatableObject
{
    [Required, EmailAddress, Display(Name = "Email")]
    public string Email { get; set; }

    [Required, DataType(DataType.Password), Display(Name = "Password")] 
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    public string Password { get; set; }

    [DataType(DataType.Password), Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (EmailExists(Email))
        {
            yield return new ValidationResult("Такой email уже существует");
        }
    }

    public bool EmailExists(string email)
    {
        return true;
    }
}



ниправильно мешать атрибуты с IValidatableObject, ваще.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773209
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть же атрибут [Remote], чем он вам не угодил, не пойму???
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773222
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕсть же атрибут [Remote], чем он вам не угодил, не пойму???Я разве где-то говорил, что атрибут [Remote] мне не угодил?
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38773223
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAcodearticles.ruЕсли ты хочешь более гибкого решения, чтобы не зависеть от остальной валидации, то сделай вторую модель IValidatableObject и реализуй в ней проверку на email. И дергай её аяксом. Это всё уже дополнительная логика, которая не обсуждалась изначально. И тем не менее, эта логика отлично ложится в IValidatableObjectНичего она туда отлично не ложиться.

Ты предлагаешь создать отдельный класс с отдельным полем, для проверки на валидность этого самого поля. Что-то типа:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class LoginModel: IValidatableObject
{
        public string Login { get; set; }

        public System.Collections.Generic.IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
        {
            if (userRepository.ExistsLogin(this.Login))
            {
                yield return new ValidationResult("Login already exists");
            }
        }
}


Причём, чтобы обработать результат, надо будет ещё и ModelState проверять и перебирать.
Причём необходимость валидировать RegisterModel при этом не отменяется.

Получаем больше кода, да ещё и дублирование. По сравнению с тем, что я предлагал.
Отлично ложится. Чтобы не было дублирования и всё работало на одной IValidatableObject модели, тогда дожидаемся заполнения всех полей, постим и валидируем. Тоже вполне нормальный вариант. Всё зависит от способа исполнения.
...
Рейтинг: 0 / 0
25 сообщений из 406, страница 14 из 17
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC: обработка исключения в контроллере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]