【问题标题】:Unable to get the value of Enum from asp-route-data无法从 asp-route-data 获取 Enum 的值
【发布时间】:2022-10-31 09:10:17
【问题描述】:

我有一个枚举:

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" 的值。

【问题讨论】:

    标签: c# asp.net-core asp.net-core-mvc tag-helpers


    【解决方案1】:

    检查 HTML 元素,您会看到您正在传递字符串“mediaType.Video”,但不是 Enum 值。

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

    您需要 @ 语法才能使用来自 Razor 的变量/值。

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


    另外,建议将mediaType 命名为naming conventions 的Pascal 大小写。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 2015-10-19
      • 2021-08-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多