我有一个.NET 6解决方案与2个Razor页面项目。它们被称为应用程序1和应用程序2。这两个应用程序在不同的端口号下运行。
我的目标:
我在Application1中有一个按钮,当单击时,我想将用户重定向到Application2,但我想将一些值从Application1发送到Application2。我不允许使用URL查询字符串,因为这些字符串很容易被操纵。
我所尝试的
我尝试使用这种方法在第二个应用程序中发布所需的值:
private static readonly HttpClient client = new HttpClient();
public void OnPostRedirect()
{
string url = "https://localhost:7075/index";
string MyDataFirstName = "Adam";
string MyDataLanguage = "English";
string MyDataTokenCode = "ABCD1234XYZ789";
var values = new Dictionary<string, string>
{
{ "firstname", MyDataFirstName },
{ "language", MyDataLanguage },
{ "tokencode", MyDataTokenCode }
};
var content = new FormUrlEncodedContent(values);
var response = client.PostAsync(url, content).Result;
Response.Redirect(url);
}
字符串
我的问题是:
1.这种方法可以吗?如果不是,那么什么才是正确的方法呢?
1.如何在第二个应用程序中检索这些值?我无法在那里检索这些值。我尝试在第二个应用程序中检查索引页的OnGet()
方法中的Request
对象。但我在那里找不到这些价值观。
1条答案
按热度按时间u91tlkcl1#
需要创建一个模型来检索
FormUrlEncodedContent
,调用URL应该是“https://localhost:7075/home/index”,可能需要添加'.GetAwaiter().GetResult();“当在非异步方法中使用postasync时。你可以试试下面的代码。
app1
字符串
app2
型
测试项目
x1c 0d1x实际上,如果不使用JavaScript,您应该创建另一种方法而不是“index”来接收数据,然后将其保存到数据库。当app 1转到重定向到app 2/index的步骤时。你可以用索引方法从数据库中检索数据。