Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
new_char
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 4
1

Регистрация в другом контроллере

21.05.2016, 13:18. Просмотров 274. Ответов 3
Метки нет (Все метки)

Добрый день.
Есть у меня стандартная модель People с несколькими полями. И нее есть стандартный контролер и шаблонные вьюшки.
Я хочу, чтоб при заполнение полей People в вьюшки Create так же можно было заполнить поля для регистрации и автоматически происходила регистрация пользователя, используя стандартную регистрацию ASP.NET MVC. Во вьюшки пипл нужные поля добавил.
Экшен в пипл поменял так:
C#
1
2
3
4
5
6
7
8
9
10
11
 
public ActionResult Create([Bind(Include="FullName,Sex,DateOfBirth,DateOfFilling,OtherDetails")] People people, RegisterViewModel Rmodel)
        {
            if (ModelState.IsValid)
            {
                db.People1.Add(people);
                db.SaveChanges();
                 //так не работает, а хотелось бы :\
                //RedirectToAction("Register", "Account", new { model = Rmodel });
                return RedirectToAction("Index");
            }
В коде выше в модель Rmodel все данные приходят правильно.
И я хочу модель Rmodel передать в этот экшен:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser() { UserName = model.UserName };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    await SignInAsync(user, isPersistent: false);
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    AddErrors(result);
                }
            }
 
            // Появление этого сообщения означает наличие ошибки; повторное отображение формы
            return View(model);
        }
Помогите разобраться как это сделать либо как поменять логику таким способом, чтоб решалась исходная задача
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2016, 13:18
Ответы с готовыми решениями:

Как обратиться к функции в другом контроллере?
Доброго времени суток. У меня в проекте есть несколько контроллеров. В частности AdminController и...

Поле в контроллере
Добрый день, форумчане! Есть класс: public class Person { public Guid ID {...

Нет данных в Контроллере
Есть две модели public class Position { public int Id { get; set; } ...

Получить ID формы в контроллере
Здравствуйте, есть контроллер. public ActionResult Update(Object Model) ...

Обнуление масива в контроллере
Как сделать чтобы масив не обнулялся при заходе в метод &quot;public ActionResult Delit&quot;? public class...

3
sashocheck
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
21.05.2016, 19:31 2
new_char, а у вас случаем значение параметра Rmodel метода действия Create не равно null?
покажи представление.

Добавлено через 26 минут
и еще, рекомендую изменить RegisterViewModel и добавить в нее поля People. а метод действия Register изменить на:
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
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                People people = new People { FullName = model.FullName, Sex = model.Sex, ...}
 
                db.People1.Add(people);
                db.SaveChanges();
 
                var user = new ApplicationUser() { UserName = model.UserName };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    await SignInAsync(user, isPersistent: false);
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    AddErrors(result);
                }
            }
 
            return View(model);
        }
0
new_char
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 4
21.05.2016, 21:17  [ТС] 3
Я писал выше, что в Rmodel приходят верные данные и null он не равняется. Сама вьюшка стандартная, просто добавил интпуты для модели Rmodel. Вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//.....
  <div class="form-group">
            @Html.LabelFor(model => model.OtherDetails, new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.OtherDetails)
                @Html.ValidationMessageFor(model => model.OtherDetails)
            </div>
        </div>
 
          //мои инпуты
        <input id="UserName" name="UserName" type="text" value="" />
        <input id="Password" name="Password" type="text" value="" />
        <input id="ConfirmPassword" name="ConfirmPassword" type="text" value="" />
 
//....
В итоге, я так и сделал. В регистрацию добавил поля пипл. Но интересно все таки узнать ответ. Можно ли сделать наоборот? Подозреваю, что проблема в том, что я пытаюсь из синхронного экшена вызвать асинхронный.
0
sashocheck
19 / 19 / 6
Регистрация: 09.12.2010
Сообщений: 140
22.05.2016, 10:23 4
new_char, ну смотри, проблема в том, что RedirectToAction() не производит редирект на POST метод.
и то что ты в регистрацию добавил поля пипл, в данном случае самое правильное решение.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2016, 10:23

Определить текущего юзера в контроллере
Хочу сделать так. public actionresult SomeAction(string q) { var db=new MyProjectDbEntities();...

Получение значений в WebAPI контроллере
Привет. Ребят такая ситуация: Имеется приложение с WebApi контроллером. Подскажите могу ли я в...

Добавление ссылки на якорь в контроллере
Добрый день. С MVC3 только начал свое знакомство. Возникла такая ситуация. Есть контроллер,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru