如何重用表格和动作

时间:2019-05-05 12:10:12

标签: c# asp.net-core razor

我正在建立订阅服务。会员通过输入手机号码登录。如果有匹配项,我们将向其发送一条SMS,并在其页面上插入一个代码,如果可以,则他们已登录。

现在,当用户(不一定是登录会员)在其他产品上进行订阅时,我们将不再重复使用。因此,当他们选择了产品后,我们就不希望他们输入手机和SMS代码继续进行操作。

我的问题是如何在不重复的情况下重复使用它?

现在它位于/account/login (index.cshtml, index.cshtml.cs),新部分可能位于/subscription/start (index.cshtml, index.cshtml.cs)

我知道我可以使用Partial ViewView 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 :(得分:0)

您可以使用视图组件,不仅用于视图,视图组件还具有一个类,您可以在其中编写所需的逻辑并在任何地方调用它。在https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-components?view=aspnetcore-2.2

中查看文档