ASP.net MVC - 来自多个来源的输出

时间:2012-07-31 01:23:49

标签: asp.net-mvc mongodb

有没有更好的方法通过返回View()来显示来自MVC中多个源的数据?

我基本上打电话给两个不同的来源,然后填写一个共同的集合,我可以结合结果。只是想知道我是否可以返回两个数据对象而不必将它们组合起来?

任何建议都将不胜感激。

感谢,

取值

2 个答案:

答案 0 :(得分:2)

通常使用ViewModel可以容纳多个集合或其他类型传递给您的视图。

如果您不想/需要强类型视图,您可以使用ViewBag或ViewData将多个集合传递给您的视图:

public ActionResult Index()
{
    ViewData["GratuitousGuid"] = Guid.NewGuid();

    ViewBag.Products = ProductService.GetProducts();
    ViewBag.Countries = CountryService.GetCountries();
    ViewBag.Zombies = ZombieService.GetZombies();

    return View();
}

答案 1 :(得分:1)

您可以使用多个操作将不同来源呈现为PartialView,然后将它们整合在一起View

示例:

HomeController.cs

public ActionResult Foo() {
    return PartialView(repository.GetFoo());
}

public ActionResult Bar() {
    return PartialView(repository.GetBar());
}

public ActionResult Index() {
    return View();
}

Index.cshtml

<div id='foo'>
    @Html.Action("Foo")
</div>

<div id='bar'>
    @Html.Action("Bar")
</div>

Foo.cshtml和Bar.cshtml将是显示每个模型数据的PartialView。

<强>附录

我喜欢这种方式的另一个原因是它非常适合AJAX更新。例如,如果需要在页面上更新Bar部分,那么您可以使用jQuery编写:

$('#bar').load('/home/bar', function (html) {
    //Set up your returned data here (callbacks and the like)
});

无需执行完全刷新