我正在建立订阅服务。会员通过输入手机号码登录。如果有匹配项,我们将向其发送一条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>
答案 0 :(得分:0)
您可以使用视图组件,不仅用于视图,视图组件还具有一个类,您可以在其中编写所需的逻辑并在任何地方调用它。在https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-components?view=aspnetcore-2.2
中查看文档