【问题标题】:Asp Net Core select listAsp Net Core 选择列表
【发布时间】:2018-04-02 16:58:50
【问题描述】:

我有以下问题:

public class ShortInfo
{
    public int Id { get; }
    public string FullName { get; }
}

public class SelectSomething
{
    public int Id { get; set; }
    public List<ShortInfo> Info { get; set; }
}

在共享文件夹中我有这个部分视图:

@model SelectSomething

<select asp-for="Id" asp-items="@(new SelectList(Model.Info, "Id", 
"FullName"))"></select>

局部视图显示列表,一切正常。

但是,如果尝试执行控制器代码,请通过如下链接:

@Url.Action("Controller","Action", new { id = Model.Id })

不是这个

@Url.Action("Controller","Action")

我有两个不同的结果。

当部分视图的列表被创建时,它显示的内容和以前一样,但它会根据 id 号自动设置默认值。

例如,如果我从没有额外参数的@Url.Action 获得此视图,则列表是 4 个元素的列表,默认是第一个。

如果我点击链接:

@Url.Action("Controller","Action", new { id = Model.Id })

我得到完全相同的列表,但显示的默认值是 Model.Id 的索引。

谁能帮我理解这里发生了什么,谢谢。

【问题讨论】:

  • 请分享您的操作方法的代码,这些方法分别使用 Controller/Action 和 Controller/Action/Id 路由调用。

标签: asp.net-core


【解决方案1】:

那是因为你在 select 标签上添加了asp-for="Id",所以这意味着这个 select 将是 Id 的值。因此,每次您在路线上提供 Id 时,它都会对所选项目生效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多