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