Ядро asp.net кодирует URI - PullRequest
       8

Ядро asp.net кодирует URI

0 голосов
/ 11 декабря 2018

У меня есть что-то вроде ядра asp.net (я использую ядро ​​asp.net c #, используя бритву):

@Html.ActionLink("Edit", "EditEmployee","Employee", new { id = item.id})

этот item.id является base64string, который будет декодировать в среднем слое, и у него есть слеш('/') символ в закодированной строке, поэтому action не может его понять, а параметр action имеет значение null.

Мой вопрос заключается в том, как я могу отправить этот item.id в свое действие, так как это base64string, содержащее слеш ('/').

это мой маршрут к карте в файле startup.cs:

routes.MapRoute(
       name: "EditEmployee",
       template: "{controller=Employee}/{action=EditEmployee}/{id?}");

Это моё действие, которое мне нужно вызвать ... но параметр sule to double slash получаетноль.

    [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 голосов
/ 11 декабря 2018

Я бы просто удалил символы '/', '=' и '+' из строки перед ее сохранением.

...