如何在asp.net MVC 4中创建带有子视图的视图

时间:2012-10-16 03:51:36

标签: asp.net-mvc

我有一个控制器:

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

MySite / MyController /使用3个按钮和div渲染网站。 按钮重定向到: 的MySite /控制器/ button1的 的MySite /控制器/ BUTTON2 的MySite /控制器/ BUTTON3

我希望当用户点击button1时,它会在div中使用公共ActionResult Button1()的内容呈现MySite / MyController /。

对于按钮2和3也是如此。如果用户直接转到MySite / Controller / button2,它应该在开始的div中使用ActionResult Button2渲染索引。

有一种简单的方法吗?我是否需要使用ajax来替换div的内容,或者我应该将按钮设置为局部视图并在4页上呈现它们。

如果使用ajax很容易,我希望因为页面不需要刷新,而只是加载内容。但是,如果用户直接进入MySite / Controller / button2,我不确定如何正确渲染页面。

1 个答案:

答案 0 :(得分:0)

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

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