Asp Net Core选择列表

时间:2018-04-02 16:58:51

标签: asp.net-core

我有以下问题:

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的索引。

任何人都可以帮我理解这里发生了什么,谢谢。

1 个答案:

答案 0 :(得分:0)

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