也许我错过了这一点,但我想从Web API控制器中检索MVC视图中的下拉列表的一些数据。
我想简单地构建这样的东西:
API控制器:
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
}
public class ListController : ApiController
{
public IEnumerable<Foo> GetFoos()
{
return new List<Foo>( new[]
{
new Foo()
{
Id = 1,
Name = "Foo 1"
},
new Foo()
{
Id = 3,
Name = "Foo 3"
}
});
}
}
所以,在我看来,我试图使用这样的Html扩展帮助:
@Html.DropDownList("FooId", new SelectList(Html.Action("GetFoos","api/List")))
很明显,这给了我错误:
'System.Web.Mvc.SelectList.SelectList(System.Collections.IEnumerable)'的最佳重载方法匹配有一些无效的参数
但我似乎找不到合适的方法来做到这一点。
有可能吗?或者我需要使用JQuery进行AJAX调用吗?
(ps。我知道处理服务器调用视图时的性能影响。它现在会让我的生活变得更轻松)
提前致谢。
答案 0 :(得分:1)
@Html.DropDownList
旨在与ViewModel一起使用,它不会检索服务请求。为此,您必须通过ajax请求从客户端调用您的服务,是的。
通常,您只需将模型传递给视图并在服务器端构建下拉列表。