Asp.net mvc 如何完成这个MVC布局

Asp.net mvc 如何完成这个MVC布局,asp.net-mvc,Asp.net Mvc,作为MVC的新手,我在过去的几周里一直在努力让我的布局正常工作 我设法把自己弄得一团糟。因此,与其试图解释和解开我的困境,也许有人可以解释我将如何在高水平上完成以下任务 _布局这将有所有的css js等。它也将有基本的结构 当然,代码块中不允许使用HTML标记…每个渲染都在一个div中 @RenderPartial(Header)</div> @RenderBody()</div> @RenderPartial(Footer)</div> @RenderP

作为MVC的新手,我在过去的几周里一直在努力让我的布局正常工作

我设法把自己弄得一团糟。因此,与其试图解释和解开我的困境,也许有人可以解释我将如何在高水平上完成以下任务

  • _布局这将有所有的css js等。它也将有基本的结构
  • 当然,代码块中不允许使用HTML标记…每个渲染都在一个div中

    @RenderPartial(Header)</div>
    @RenderBody()</div>
    @RenderPartial(Footer)</div>
    
    @RenderPartial(标题)
    @RenderBody()
    @渲染部分(页脚)
    
  • RenderBody是Index.cshtml,它将分为三部分
  • @

    @Html.Partial(导航菜单,型号)
    @Html.Partial(菜单、模型)
    @Html.Partial(主要内容、模型)
    
    我有这个基本的布局,它看起来很好,直到你点击其中一个菜单项

    菜单项呈现为:

    <a class="k-link" href="/stuffroute">Stuff</a>
    
    
    
    该路由到达一个控制器,该控制器返回一个视图,并从Index.cshtml中的上述安排中导航出去。因此,我以页眉、页脚和子虚线导航结束

    所以问题是。。。
    我如何安排布局以避免丢失不同的部分?

    在这里,部分对您没有任何帮助。您本质上是在询问如何创建SPA(单页应用程序),尽管在本例中,您的应用程序将有其他页面,但索引视图的作用类似于SPA

    这需要JavaScript,特别是AJAX,向端点发出请求,这些端点将返回可用于替换部分DOM的HTML片段。例如,单击“Stuff 1”会导致对URL发出AJAX请求,该URL路由到
    FooController.GetSubNav([Stuff identifier])
    。然后,该操作将使用传递给它的内容检索正确的子导航,并返回渲染该子导航的局部视图。然后,AJAX回调将接受此响应,选择DOM的一部分(特别是子nav的父级),并插入新HTML作为其
    innerHTML


    如果您要做很多这方面的工作,您将需要使用一些客户端MVC风格的JavaScript库,例如Angular。这使得将所有内容连接起来变得很简单。

    在这里,部分内容对您没有任何帮助。您本质上是在询问如何创建SPA(单页应用程序),尽管在本例中,您的应用程序将有其他页面,但索引视图的作用类似于SPA

    这需要JavaScript,特别是AJAX,向端点发出请求,这些端点将返回可用于替换部分DOM的HTML片段。例如,单击“Stuff 1”会导致对URL发出AJAX请求,该URL路由到
    FooController.GetSubNav([Stuff identifier])
    。然后,该操作将使用传递给它的内容检索正确的子导航,并返回渲染该子导航的局部视图。然后,AJAX回调将接受此响应,选择DOM的一部分(特别是子nav的父级),并插入新HTML作为其
    innerHTML


    如果您要做很多这方面的工作,您将需要使用一些客户端MVC风格的JavaScript库,例如Angular。这些使得连接所有内容变得很简单。

    为什么不将导航和副导航移动到布局中而不是索引视图中?为什么不将导航和副导航移动到布局中而不是索引视图中?我在angular上的Pluralsight上做了一个课程。看起来很酷,但我现在有足够多的新领域,也许重新设计会是一个更明智的选择。我已经在angular上完成了一门关于Pluralsight的课程。看起来很酷,但我现在有足够多的新领域,也许重新设计会是一个更明智的选择。
    <a class="k-link" href="/stuffroute">Stuff</a>