Как повторно использовать форму и действия - PullRequest
0 голосов
/ 05 мая 2019

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

Теперь мы не хотим повторно использовать это, когда пользователи (не обязательно зарегистрированные пользователи) подписываются на другие продукты. Поэтому, когда они выбрали продукт, мы не хотим, чтобы они вводили мобильный телефон и SMS-код для продолжения.

Мой вопрос: как я могу использовать это, не дублируя его?

Сейчас он расположен на /account/login (index.cshtml, index.cshtml.cs), и новая часть, вероятно, будет на /subscription/start (index.cshtml, index.cshtml.cs).

Я знаю, что могу использовать Partial View или View Component, но это только для просмотра. Как я могу сделать так, чтобы мне не нужно было выполнять действия в обоих файлах index.cshtml.cs?

Моя текущая форма:

@model Models.SMSVerification

<div class="grid space-around">
    <div class="griditem no-padding col-6 col-md-9 col-sm-12">
        <form method="post">
            <div class="form-container">
                @if (Model?.Cellphone == null)
                {
                    <div class="form-group modern">Enter your cellphone number.</div>
                    <div class="form-group modern">
                        <label asp-for="Cellphone"></label>
                        <input asp-for="Cellphone" class="input" />
                        <span asp-validation-for="Cellphone"></span>
                    </div>
                    <div class="form-group buttons">
                        <button type="submit" asp-page-handler="SendSMS" class="btn secondary">Send SMS</button>
                    </div>
                }
                else
                {
                    <div class="form-group modern">Enter the code you received on SMS.</div>
                    <div class="form-group modern">
                        <label asp-for="SMSCode"></label>
                        <input asp-for="SMSCode" value="@Model.SMSCode" class="input" />
                        <span asp-validation-for="SMSCode"></span>
                    </div>
                    <div class="form-group buttons">
                        <button type="submit" asp-page-handler="Verify" class="btn secondary">Login</button>
                        <button type="submit" asp-page-handler="SendSMS" class="btn secondary clean">Send again</button>
                    </div>
                    <input asp-for="Cellphone" type="text" />
                    <input asp-for="Verification" type="text" value="@Model.Verification" />
                }
            </div>
        </form>
    </div>
</div>

1 Ответ

0 голосов
/ 05 мая 2019

вы можете использовать компоненты представления, это не только для представления, у компонента представления есть класс, где вы можете написать желаемую логику и вызывать ее где угодно. смотри документ здесь https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-components?view=aspnetcore-2.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...