c# - 将“所有者”身份传递给相关模型的创建视图
问题描述
我有这个视图模型Employees
:
public class EmployeeViewModel
{
public int Id { get; set; }
// some more properties
public List<EmployeeReservationViewModel> Reservations { get; set; }
}
...而这个用于EmployeeReservations
:
public class EmployeeReservationViewModel
{
public int Id { get; set; }
public int EmployeeId { get; set; }
// some more properties
public EmployeeViewModel Employee { get; set; }
}
在Employees
Details
-view 中,我有一个用于添加新的链接EmployeeReservation
,如下所示:
<a asp-controller="EmployeeReservations"
asp-action="Create">Add reservation</a>
我应该如何将其传递EmployeeId
给EmployeeReservations/Create
-View?
目前,我Employees
在控制器的 Details 方法中使用了一个会话变量,如下所示:
HttpContext.Session.SetInt32("EmployeeId", employee.Id);
...然后在 -controller 的 Create POST 方法中检索它EmployeeReservations
:
employeeReservation.EmployeeId = HttpContext.Session.GetInt32("EmployeeId").Value;
db.Add(employeeReservation);
await db.SaveChangesAsync();
我感觉我的方法不是最优的。如果会话超时怎么办?还有另一种更安全的方法吗?
解决方案
您可以使用 asp-route-id
在视图中
<a asp-controller="EmployeeReservations"
asp-action="Create" asp-route-id="10">Add reservation</a>
在控制器中添加 id 作为参数创建操作
Public IActionResult Create(string id){
}
推荐阅读
- python - 如何使用python在字符串中的单词后查找值?
- java - RestTemplate 和 UriComponentsBuilder 访问 API
- sql-server - 检查存储过程中的权限
- facebook-graph-api - 我可以在我的后端访问有关 Instagram 媒体的 Instagram 见解吗?
- asp.net - FluentValidation 验证字段总和
- javascript - HTML获取React中表单的内部html标签值onSubmit
- angular - 在循环中获取 ngModel 类型元素的值
- python - 如何更改类中的变量并返回它
- c++ - 在 C++11 中返回包含 const-reference 的 std::tuple
- java - 布局未在 Android Studio 中呈现