Javascript 如何将数组从controller传递到_layout.cshtml

Javascript 如何将数组从controller传递到_layout.cshtml,javascript,arrays,entity-framework,asp.net-core-mvc,Javascript,Arrays,Entity Framework,Asp.net Core Mvc,我必须将数组传递到我的_布局页面(该页面没有@model)。 阵列必须来自控制器方法,例如: public IActionResult AssignLoan() { EntityDetails entity = new EntityDetails(); entity.Name = (from o in _context.EntityDetails select o.Name).ToString();

我必须将数组传递到我的_布局页面(该页面没有@model)。 阵列必须来自控制器方法,例如:

public IActionResult AssignLoan()
    {

        EntityDetails entity = new EntityDetails();
        entity.Name = (from o in _context.EntityDetails
                       select o.Name).ToString();



        entity.Name.ToArray();
        ViewData["populatedropdown"] = entity;

        return View();
    }
数组必须传递到_布局视图的这个部分,并且必须设置为等于var

  var countries = ["Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa"];

使用视图组件。将名为
ViewComponents
的文件夹添加到项目中,并添加以下类。显然,将
Foo
更改为实际描述其功能的名称

public class FooViewComponent : ViewComponent
{
    public async Task<IViewComponentResult> InvokeAsync()
    {
        var list = // get your list
        return View(list);
    }
}
其中
“Foo”
是视图组件的名称减去
视图组件
部分。视图组件是可注入的,所以如果需要访问上下文或其他内容,只需添加一个构造函数,将其作为参数接收并将其分配给ivar,就像使用控制器一样。此外,如果需要,
InvokeAsync
可以作为参数传递。例如:

public async Task<IViewComponentResult> InvokeAsync(string foo)

有关详细信息,请参见。

使用视图组件。将名为
ViewComponents
的文件夹添加到项目中,并添加以下类。显然,将
Foo
更改为实际描述其功能的名称

public class FooViewComponent : ViewComponent
{
    public async Task<IViewComponentResult> InvokeAsync()
    {
        var list = // get your list
        return View(list);
    }
}
其中
“Foo”
是视图组件的名称减去
视图组件
部分。视图组件是可注入的,所以如果需要访问上下文或其他内容,只需添加一个构造函数,将其作为参数接收并将其分配给ivar,就像使用控制器一样。此外,如果需要,
InvokeAsync
可以作为参数传递。例如:

public async Task<IViewComponentResult> InvokeAsync(string foo)

有关您的查询没有任何意义(您的意思是
.ToList()
?)和
实体.Name.ToArray())的详细信息,请参见没有意义,因为您没有将结果分配给任何对象。这是为了什么?你想用数组做什么?我对这个很陌生,所以查询结果必须设置为数组,数组必须传递给我的视图,没有@model。我想把数组传递给我的布局视图,它填充了一个可搜索的dropdownlist。那你就错了。在布局中,您可以使用
@Url.Action(…)
调用
[ChildActionOnly]
控制器方法,该方法返回部分视图(该部分视图将被强绑定到模型,并在查询中使用
@Html.DropDownListFor(m=>m.SomeProperty,model.SomeSelectList)
.ToString()
(您是指
.ToList()
?)和
实体.Name.ToArray();
没有任何意义,因为您没有将结果分配给任何对象。这是为了什么?您想对数组做什么?我对此很陌生,因此必须将查询结果设置为数组,并且必须将该数组传递给我的视图,而不使用@model。我想将数组传递给我的布局视图,该视图填充可搜索的dropdownlist那么你就完全错了。在布局中,你使用
@Url.Action(…)
调用
[ChildActionOnly]
控制器方法,该方法返回一个部分视图(该部分视图将被强绑定到一个模型,并使用
@Html.DropDownListFor(m=>m.SomeProperty,model.SomeSelectList)
谢谢,这很有帮助。谢谢,这很有帮助。