dotnet / dotnet/aspnetcore

RedirectToAction in Core 3.1 MVC route values don't pass through if param has default

Open
#22,303 2 comments 0 reactions 0 assignees View on GitHub
affected-medium area-mvc enhancement feature-routing severity-major
Dominant language
C#
Stars
38.4k
Forks
10.9k
Avg merge
2d 6h
Merged PRs (30d)
290

Description

This action won't load the parameter with a passed route value from a redirection because it has a default.

```csharp
public IActionResult HelloWorld(string message="")
{
ViewData["Message"] = message; // If sent 'Howdy' from SendMsg() message will be empty
return View();
}
public IActionResult() SendMsg()
{
return RedirectToAction("HelloWorld", new{ message="Howdy" });
}
/***********************************************/
// But this works ok if there is no default value on the param:
public IActionResult HelloWorld(string message)
{
ViewData["Message"] = message; // message will hold 'Howdy' now
return View();
}
```

I never observed this before, so it might be a long-standing issues, normal behavior, or whatever.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.