Javascript 如何将数组从controller传递到_layout.cshtml
我必须将数组传递到我的_布局页面(该页面没有@model)。 阵列必须来自控制器方法,例如: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();
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)
谢谢,这很有帮助。谢谢,这很有帮助。