Я строю сервис подписки. Пользователи входят в систему, введя номер своего мобильного телефона. Если есть совпадение, мы отправляем 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>