asp.net核心uri编码

时间:2018-12-11 06:57:49

标签: .net-core urlencode

我在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));
    }

1 个答案:

答案 0 :(得分:0)

在保存之前,我只需从字符串中删除“ /”,“ =”和“ +”符号。