powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Необходима подсказка
4 сообщений из 4, страница 1 из 1
Необходима подсказка
    #38001676
rush.khaz.88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В ASP.NET MVC новичок. Поэтому вам может показаться что вопросы глупые. Но ваша подсказка может помочь мне в понимании самого механизма. Продемонстрирую один пример.
Скрин кода
[img=Безымянный1.JPG]
...
Рейтинг: 0 / 0
Необходима подсказка
    #38001699
rush.khaz.88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В ASP.NET MVC новичок. Поэтому вам может показаться что вопросы глупые. Но ваша подсказка может помочь мне в понимании самого механизма. Продемонстрирую один пример.
Код модели:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
namespace PartyInvites.Models
{
    public class GuestResponce
    {
        [Required(ErrorMessage="Please enter your mail")]
        [RegularExpression(".+\\@.+\\..+",ErrorMessage="Error1")]
        public string Mail { get; set; }
    }
}



Часть кода контроллера (Полностью код контроллера не привожу, привожу только интересующую меня часть):
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
namespace PartyInvites.Controllers
{
    public class HomeController : Controller
    {
        [HttpPost]
        public ViewResult RSVP(GuestResponce guestResponce)
        {
                return View();
        }
    }
}



Разметка страницы (Представление) :
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
@model PartyInvites.Models.GuestResponce

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <title>RSVP</title>
</head>
<body>
    <div>
        @using (Html.BeginForm())
        {
            @Html.ValidationSummary()
            <p>Your name: @Html.TextBoxFor(x=>x.Mail)</p>
            <input type="submit" value="Submit RSVP" />
        }
    </div>
</body>
</html>




Теперь собственно и вопрос:
Почему при нажатии кнопки Submit на страничке, содержимое TextBox-а не удаляется??? Хотя в контроллере возвращается представление страницы функцией без параметров "return View();", то есть откуда MVC знает какие значения в TextBox-ax были раньше? Если было бы так "return View(guestResponce);" - то все было бы понятно, тут конечно большой вопрос. Автор книги по которой я делаю пример пишет что это механизм Model Binding позволяет так делать, тем не менее он не говорит как это работает, вобщем-то в инете я не нашел разъяснение как этот механизм работает для конкретного типа примера.
Может кто-нибудь разъяснить механизм работы или дать ссылки на ресурсы где можно про это прочитать. Заранее спасибо большое за вашу помощь.
...
Рейтинг: 0 / 0
Необходима подсказка
    #38002384
rush.khaz.88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался без посторонней помощи.
Поясню если кто-то задавался таким вопросом или просто для общего развития не помешает.
Дело в том, что при получении пустой ссылки вместо Модели, метод View() самостоятельно создаст её экземпляр. После чего заполнит её данными, если у Действия присутствуют параметры, аналогичных именам Модели.
Вот и все. Тему можно считать закрытой.
...
Рейтинг: 0 / 0
Необходима подсказка
    #38002392
rush.khaz.88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавлю, что передача пустой ссылки в View() приведет к выбросу исключения. Оно будет перехвачено внутри ядра ASP.NET MVC, но тем не менее это лишние затраты процессорного времени при выполнении веб-приложения. Поэтому, на мой взгляд, лучше передавать в метод параметр.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Необходима подсказка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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