无法从 asp-route-data 获取 Enum 的值

can not get the value of Enum from asp-route-data

我有一个枚举

      public enum mediaType
    {        
        Video = 0,
        Voice = 1,
        Image = 2
    }

现在我想使用 Tag Helper 将值从视图传递到控制器

    <a class="btn btn-primary" asp-controller="ShowMedia" asp-action="Index" asp-route-typeindex="mediaType.Video">All Video</a>

并在控制器中

   public IActionResult Index(mediaType typeindex=mediaType.Image)
        {
           //does something
            return View(typeindex.ToString(), model);
        }

问题是 typeindex 参数总是用它的默认值 mediaType.Image 填充,它永远不会得到 asp-route-typeindex="mediaType.Video"[=14] 的值=]

检查 HTML 元素,您会看到传递的是字符串“mediaType.Video”,而不是枚举值。

在控制器中,Index会使用默认值mediaType.Image

您需要 @ 语法才能使用来自 Razor 的 variable/value。

<a class="btn btn-primary" asp-controller="ShowMedia" asp-action="Index" 
    asp-route-typeindex="@mediaType.Video">All Video</a>


此外,建议将 mediaType 命名为 naming conventions.

public enum MediaType
{        
    Video = 0,
    Voice = 1,
    Image = 2
}