下面是我在 Asp.Net Core 中的做法,首先将查询字符串参数分配给控制器中的 ViewBags:
[HttpGet("/[controller]/[action]/{categoryId?}/{contractTypeId?}/{locationId?}")]
public IActionResult Index(Guid categoryId, int contractTypeId, Guid locationId)
{
ViewBag.CategoryId = categoryId;
ViewBag.ContractTypeId = contractTypeId;
ViewBag.LocationId = locationId;
...
}
然后将值传递给您的链接,如下所示:
<a asp-action="Index" asp-controller="Jobs"
asp-route-categoryId="@teachingCategory.Id"
asp-route-contractTypeId="@ViewBag.ContractTypeId"
asp-route-locationId="@ViewBag.LocationId">
@teachingCategory.Description (@teachingCategory.Rank)
</a>
<a asp-action="Index" asp-controller="Jobs"
asp-route-categoryId="@ViewBag.CategoryId"
asp-route-contractTypeId="@typeOfEmployment.Id"
asp-route-locationId="@ViewBag.LocationId">
@typeOfEmployment.Name
</a>
<a asp-action="Index" asp-controller="Jobs"
asp-route-categoryId="@ViewBag.CategoryId"
asp-route-contractTypeId="@ViewBag.ContractTypeId"
asp-route-locationId="@item.Id">
@item.Id
</a>
请注意,每个链接都保留自己的实际值,并通过我们传递给 ViewBag 的内容传递其余的路由值。