C# 使用RedirectToPage时如何避免冗长复杂的URL?
我正在使用控制器将数据返回到Razor页面。我正在返回员工信息: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,
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();
}
参考: