Asp.net mvc 如何在asp.net MVC 4中创建包含子视图的视图

Asp.net mvc 如何在asp.net MVC 4中创建包含子视图的视图,asp.net-mvc,Asp.net Mvc,我有一个控制器: public ActionResult Index() { return View(); } public ActionResult Button1() { return View(); } MySite/MyController/使用3个按钮和一个div呈现站点。 按钮重定向到: MySite/控制器/按钮1 MySite/控制器/按钮2 MySite/控制器/按钮3 我希望当用户单击butto

我有一个控制器:

    public ActionResult Index()
    {
        return View();
    }
    public ActionResult Button1()
    {
        return View();
    }
MySite/MyController/使用3个按钮和一个div呈现站点。 按钮重定向到: MySite/控制器/按钮1 MySite/控制器/按钮2 MySite/控制器/按钮3

我希望当用户单击button1时,它会在div中呈现MySite/MyController/和public ActionResult button1()的内容

波顿2号和3号也是如此。如果用户直接转到MySite/Controller/button2,它应该在目录的div中使用ActionResult button2呈现索引

有没有一个简单的方法可以做到这一点?我是否需要使用ajax来替换div的内容,还是应该将按钮作为局部视图并在4个页面上呈现它们


如果ajax很简单,我希望页面不需要刷新,只需加载内容。但是,如果用户直接进入MySite/Controller/button2,我不确定如何正确呈现页面。

我在这里看到了一些有效的选项:

  • 让每个按钮加载一个新页面,其中包含其内容
  • 将每个按钮内容作为PartialView包含在单个页面中,并使用javascript在不使用AJAX的情况下更改div内容
  • 不要包含任何按钮内容,而是通过AJAX加载它们
  • 包括第一个可见的按钮内容,并通过AJAX加载其他内容(如果这些是静态内容,那么您可以设计脚本来存储这些值,以便每个值只需加载一次)
  • 就我个人而言,我会尝试将1与2、3或4(取决于用例)结合使用。这样,站点的基本功能在没有javascript的情况下工作,但您仍然可以获得jQuery/AJAX的好处