我在asp.net核心中有类似的东西(我使用剃刀使用asp.net核心c#):
@Html.ActionLink("Edit", "EditEmployee","Employee", new { id = item.id})
此item.id是base64string,它将在中间层解码,并且在编码字符串中具有slash('/')字符,因此action无法理解它,并且action参数为null。
我的问题是我如何将这个item.id发送到我的操作中,因为它是包含斜杠('/')的base64string。
这是我在startup.cs中的地图路线:
routes.MapRoute(
name: "EditEmployee",
template: "{controller=Employee}/{action=EditEmployee}/{id?}");
这是我需要调用的操作...,但是对双斜杠参数的起诉却变为空。
[HttpGet]
[ActionName("EditEmployee")]
public async Task<IActionResult> EditEmployee(string id)
{
if (!string.IsNullOrEmpty(id))
{
var result = await _accountAction.GetEditEmployee(id);
if (result.Item1)
{
return View(result.Item2);
}
}
return RedirectToAction(nameof(ListEmployee));
}
答案 0 :(得分:0)
在保存之前,我只需从字符串中删除“ /”,“ =”和“ +”符号。