Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用RedirectToPage时如何避免冗长复杂的URL?_C#_Asp.net_Asp.net Mvc_Asp.net Core_Controller - Fatal编程技术网

C# 使用RedirectToPage时如何避免冗长复杂的URL?

C# 使用RedirectToPage时如何避免冗长复杂的URL?,c#,asp.net,asp.net-mvc,asp.net-core,controller,C#,Asp.net,Asp.net Mvc,Asp.net Core,Controller,我正在使用控制器将数据返回到Razor页面。我正在返回员工信息: public IActionResult View(int id) { var employee = _context.Employees.Where(i => i.Id == id).Select(i => new { i.FirstName, i.LastName, i.PhoneNumber,

我正在使用控制器将数据返回到Razor页面。我正在返回员工信息:

public IActionResult View(int id)
    {
        var employee = _context.Employees.Where(i => i.Id == id).Select(i => new {
            i.FirstName,
            i.LastName,
            i.PhoneNumber,
            i.Email
        });
        string employee = JsonConvert.SerializeObject(employee);
        return RedirectToPage("/Employees/View", new { empId = id, emp = employee });
    }

我使用Razor页面的模型的OnGet()获取名字等,对它们进行操作,然后相应地显示在页面上。这真的很好,只是所有这些信息在URL中都是可见的。这只是页面所做工作的一小部分,我需要使用页面而不是视图。您能告诉我如何将员工信息传递到页面而不在URL中显示吗?

我想您可以使用
TempData

public IActionResult View(int id)
{
    var employee = _context.Employees.Where(i => i.Id == id).Select(i => new {
        i.FirstName,
        i.LastName,
        i.PhoneNumber,
        i.Email
    });
    string employee = JsonConvert.SerializeObject(employee);
    
    //add the following code....
    TempData["empId "] = id;
    TempData["employee"] = employee;

    return RedirectToPage("/Employees/View");
}
在您的
/Employees/View
方法中:

public IActionResult View()
{
    var emp = TempData["employee"] as string;
    var empId = TempData["empId "];
    return Page();
}
参考: