在解决方案中使用来自其他mvc项目的控制器结果

时间:2013-05-15 14:29:06

标签: asp.net-mvc-4 azure

我有一个包含多个项目'组'的新解决方案。每个组包含一个云项目,一个Web角色项目和一个测试项目。所有Web角色项目都是MVC4。

其中一个Web角色是访问者的入口点。访问者将看到的部分内容应来自解决方案中的其他Web角色。我无法让它工作,花了几个小时谷歌搜索后,我仍然无法解决它。也许任何人都可以在这个问题上提供帮助。

例如,我需要使用其他Web角色之一获取的数据填充标题内容。我们称之为控制器HeaderController。主项目(HomeController)中的控制器如下所示:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";


        //var headerController = new Generic.HeaderFooterContainer.Controllers.HeaderController();
        //var foo = headerController.Index().ExecuteResult();
        //ViewBag.Header = headerController.;

        return View();
    }

在评论中我试图调试一些事情。

这是主项目的页面布局。正文仍然是空的,因为这个问题只是页面标题,可以从ViewBag或ViewData中放置为html,甚至可以使用自己的@section放置。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>@ViewBag.Title</title>
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <meta name="viewport" content="width=device-width" />
        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/modernizr")
    </head>
    <body>
        <div class="headerHolder">
            <div class="innertube">
                <div id="header">
                    @ViewBag.Header
                </div>
            </div>
        </div>

        <div class="contentHolder">
            <div class="innertube">
                <div id="content">
                    @RenderBody()
                </div>
            </div>
        </div>

        <div class="footerHolder">
            <div class="innertube">
                <div id="footer">
                </div>
            </div>
        </div>

        @Scripts.Render("~/bundles/jquery")
        @Scripts.Render("~/bundles/bms")
        @RenderSection("scripts", required: false)
    </body>
</html>

我面临的问题是我无法找到如何使这项工作。如何获取标题中的数据?我注意到的一些事情是:

  1. 如果我在其专用解决方案中运行HeaderFooterContainer项目,它可以正常工作(我可以获取/ Header并在浏览器窗口中显示预期的响应)
  2. 如果我运行Main项目,我可以看到主页,但如果我要求/ Header,它可以找到控制器,但不能查看视图。它可能在主项目中寻找视图,尽管它位于HeaderFooterContainer项目中。

0 个答案:

没有答案