繁体   English   中英

在 ASP.NET CORE 中重定向页面后保存字符串变量的最佳方法

[英]The best way to save the String Variable after being redirected Page in ASP.NET CORE

页面重定向后如何将表单值保存为字符串?

我使用一个 static 变量,如果站点上的用户数增加例如 20000,站点会有问题吗?

哪种方法更好?

  1. 使用 static 变量?

  2. session?

  3. Cookies?

  4. 查看包?

  5. 查看 State?

  6. sql 服务器数据库?

其实,没有最好的方法,只有最合适的方法。 您上面列出的方法都有自己最合适的用例。

根据您的评论,我认为您可能想使用字符串参数重定向到另一个页面,因此您可以尝试使用:

return RedirectToAction("actionName","controllerName",new { Name="xxx"});

它将发送一个获取请求: acontrollerName/actionName?Name=xxx

或者,如果您想长时间保存该字符串值,您也可以尝试使用SessionDatabase 但是您需要考虑的一件事是您需要根据项目的实际情况设置session超时。

===========================编辑======================= ====

我认为您可以使用 Session 来实现它。

public class TestModel
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }


public async Task<IActionResult> OnPostSelectMenu(int selectedid)
        {
            TestModel selected = await _db.Table.FindAsync(selectedid);
             //set session
            HttpContext.Session.SetString("Key", JsonConvert.SerializeObject(selected));
            return RedirectToPage("MyPage");
        }

public async Task<IActionResult> OnGetAsync()
        {
            //......

            //get session
            Input = JsonConvert.DeserializeObject<TestModel>(HttpContext.Session.GetString("Key"));
            return Page();
        }

不,我不想重定向到其他页面我想在刷新当前页面后给出字符串值刷新页面后如何将表单值保存为字符串?

这是我的 model:

public int ID { get; set; }
public string Name { get; set; }

static 变量:

public static int IDWordsaver = 0;

在获取 MyPage 时:

public async Task<IActionResult> OnGetAsync()
        {
            await LoadAsync();
            return Page();
        }

private async Task LoadAsync()
        {
            if (IDWordsaver != 0)
            {
                var SetRecord = _db.Table.FirstOrDefault(u => u.ID == IDWordsaver);
                ID = IDWordsaver;
                Input = new InputModel
                {
                    Name = SetRecord.Name
                };
            }
        }

我将此按钮用于 select 数据库中的一条记录:

<button asp-page-handler="SelectMenu" name="selectedid" value=@item.ID class="btn btn-primary" formnovalidate>Select</button>


public async Task<IActionResult> OnPostSelectMenu(int selectedid)
        {
            var selected = await _db.Table.FindAsync(selectedid);
            ID = selected.ID;
            Input.Name = selected.Name;
            IDWordsaver = selectedid;
            return RedirectToPage("MyPage", new { IDWordsaver });
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM