ASP.Net Core 3.1条带支付和RAZOR页面添加db记录

ASP.Net Core 3.1条带支付和RAZOR页面添加db记录,asp.net,stripe-payments,Asp.net,Stripe Payments,我有一个简单的ASP.NET核心剃须刀页面应用程序(不是MVC),它添加了 记录到数据库中,效果很好。我还有一个简单的ASP.NET内核 MVC应用程序添加了带条带结帐的单一付款,效果非常好。 我需要将两者结合起来,最好有一个简单的剃须刀页面 它写入DB,然后直接调用条带签出 写记录。它是否以另一种方式工作并不重要 通过条带支付,然后写入DB 发生了。最好是我想得到一个单一的提交按钮 但如果需要两个,一个用于创建记录,一个用于提交付款, 没问题。我如何获得一个按钮来运行这两个例程(即添加db)

我有一个简单的ASP.NET核心剃须刀页面应用程序(不是MVC),它添加了 记录到数据库中,效果很好。我还有一个简单的ASP.NET内核 MVC应用程序添加了带条带结帐的单一付款,效果非常好。 我需要将两者结合起来,最好有一个简单的剃须刀页面 它写入DB,然后直接调用条带签出 写记录。它是否以另一种方式工作并不重要 通过条带支付,然后写入DB 发生了。最好是我想得到一个单一的提交按钮 但如果需要两个,一个用于创建记录,一个用于提交付款, 没问题。我如何获得一个按钮来运行这两个例程(即添加db) 记录和呼叫条带支付程序。任何指针都是非常有用的 非常感谢

ASP.NET核心剃须刀页面

Create.cshtml:

        <div class="form-group">
            <label asp-for="Amtratable.id" class="control-label"></label>
            <input asp-for="Amtratable.id" class="form-control" />
            <span asp-validation-for="Amtratable.id" class="text-danger"></span>
        </div>

        <div class="form-group">
            <label asp-for="Amtratable.surname" class="control-label"></label>
            <input asp-for="Amtratable.surname" class="form-control" />
            <span asp-validation-for="Amtratable.surname" class="text-danger"></span>
        </div> .....

       <div class="form-group">
            <input type="submit" value="Create" class="btn btn-primary" />
        </div>
    </form>    

Create.cshtml.cs:

public class CreateModel : PageModel
{
    private readonly StripeRazorTest.Data.StripeRazorTestContext _context;

    public CreateModel(StripeRazorTest.Data.StripeRazorTestContext context)
    {
        _context = context;
    }

    public IActionResult OnGet()
    {
        return Page();
    }

    [BindProperty]
    public AmtraTestCl AmtraTestCl { get; set; }
    public async Task<IActionResult> OnPostAsync()
    {
        //if (!string.IsNullOrEmpty(Create))
        {
            if (!ModelState.IsValid)
            {
                return Page();
            }

            _context.AmtraTestCl.Add(AmtraTestCl);
            await _context.SaveChangesAsync();

            return RedirectToPage("./Index");
       }
    }
}

PaymentModel.cs:

公共类支付模式 { 公共字符串ChargeID{get;set;} }

    [HttpPost]
    public IActionResult Index(RegistrationModel model)
    {
        if (ModelState.IsValid)
        {
            List<SessionLineItemOptions> items = new List<SessionLineItemOptions>();

            {
                items.Add(new SessionLineItemOptions
                {
                    Name = "Surname",
                    Description = "The name",
                    Amount = 700,
                    Currency = "gbp",
                    Quantity = 1
                });
            }

            var options = new SessionCreateOptions
            {

                PaymentMethodTypes = new List<string>
                {
                    "card"
                },
                LineItems = items,
                SuccessUrl = "https://localhost:44329/",

                //SuccessUrl = "https://localhost:44318/",
                CancelUrl = "http://localhost:5000/"
            };

            SessionService service = new SessionService();
            Session session = service.Create(options);

            PaymentModel paymodel = new PaymentModel
            {
                ChargeID = session.Id
            };
           return View("Payment", paymodel);
        }

        return View(model);
     }

   public IActionResult Payment(PaymentModel model)
    {
        return View();
    }
} 

你能添加更多的代码吗?表单操作提交到哪里?您正在执行哪些数据库操作?你指的是哪种带条纹的结帐?你已经试过什么了?你有什么错误?有很多问题需要回答。我使用asp.net核心RAZOR页面脚手架选项创建连接到DB的CRUD页面。所有工作正常,我只使用创建页面,单击“创建”写入DB fine。我有另一个asp.net核心MVC项目,它有一个简单的MVC,带有“提交”按钮的“查看”页面,可以使用Stripe将单个付款记录添加到Stripe帐户中。签出(添加行项目),无DB连接,工作正常。真的在寻找最好的方法,在一个项目(MVC或Razor)中,在一个提交按钮上获得对DB的写入记录和对条带的写入。希望是有意义的,因为我有MS Access背景(我知道它不好),但如果有意义的话,在一个按钮上放置两个事件很容易。作为一个网络编码的新手,我不知道如何处理这个问题。我可以发布Razor和MVC的所有代码,如果有帮助的话,那就不算什么了?我查看了stripe.com/docs/checkout,我可以很好地获得付款,我想实现的是,通过与我的write to DB相同的按钮获得付款,这是脚手架新项目(CRUD)路线生成的“创建”按钮对不起,我仍然不知道发生了什么,也不知道如何从Razor页面连接到submit事件。你能分享更多的代码吗?你能添加更多的代码吗?表单操作提交到哪里?您正在执行哪些数据库操作?你指的是哪种带条纹的结帐?你已经试过什么了?你有什么错误?有很多问题需要回答。我使用asp.net核心RAZOR页面脚手架选项创建连接到DB的CRUD页面。所有工作正常,我只使用创建页面,单击“创建”写入DB fine。我有另一个asp.net核心MVC项目,它有一个简单的MVC,带有“提交”按钮的“查看”页面,可以使用Stripe将单个付款记录添加到Stripe帐户中。签出(添加行项目),无DB连接,工作正常。真的在寻找最好的方法,在一个项目(MVC或Razor)中,在一个提交按钮上获得对DB的写入记录和对条带的写入。希望是有意义的,因为我有MS Access背景(我知道它不好),但如果有意义的话,在一个按钮上放置两个事件很容易。作为一个网络编码的新手,我不知道如何处理这个问题。我可以发布Razor和MVC的所有代码,如果有帮助的话,那就不算什么了?我查看了stripe.com/docs/checkout,我可以很好地获得付款,我想实现的是,通过与我的write to DB相同的按钮获得付款,这是脚手架新项目(CRUD)路线生成的“创建”按钮对不起,我仍然不知道发生了什么,也不知道如何从Razor页面连接到submit事件。你能分享更多你的代码吗?
    [HttpPost]
    public IActionResult Index(RegistrationModel model)
    {
        if (ModelState.IsValid)
        {
            List<SessionLineItemOptions> items = new List<SessionLineItemOptions>();

            {
                items.Add(new SessionLineItemOptions
                {
                    Name = "Surname",
                    Description = "The name",
                    Amount = 700,
                    Currency = "gbp",
                    Quantity = 1
                });
            }

            var options = new SessionCreateOptions
            {

                PaymentMethodTypes = new List<string>
                {
                    "card"
                },
                LineItems = items,
                SuccessUrl = "https://localhost:44329/",

                //SuccessUrl = "https://localhost:44318/",
                CancelUrl = "http://localhost:5000/"
            };

            SessionService service = new SessionService();
            Session session = service.Create(options);

            PaymentModel paymodel = new PaymentModel
            {
                ChargeID = session.Id
            };
           return View("Payment", paymodel);
        }

        return View(model);
     }

   public IActionResult Payment(PaymentModel model)
    {
        return View();
    }
} 
    [Surname]
    public string Surname{ get; set; }
}