Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 其中是WebForms的等价物';ASP.NET MVC中的母版页代码隐藏文件?_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 4 其中是WebForms的等价物';ASP.NET MVC中的母版页代码隐藏文件?

Asp.net mvc 4 其中是WebForms的等价物';ASP.NET MVC中的母版页代码隐藏文件?,asp.net-mvc-4,Asp.net Mvc 4,今天是我使用MVC的第一天,我正在尝试将我现有的Web表单网站转换为MVC4网站 我已经读了一些书,开始了解事情是如何运作的,但有一件事我搞不清楚,那就是新布局的(替换母版)与代码隐藏文件的等价物在哪里?在我当前的站点中,我有一个母版页,它定义了一般的外观,但也在codebehind中运行一些代码来动态地更改一些内容(对于本地化和DB生成的菜单系统) 所以,现在我使用的是MVC和布局,我不知道我将在哪里编写所有这些代码,有人能告诉我正确的方向吗 (我知道MVC没有代码,它使用控制器。)正如您所知

今天是我使用MVC的第一天,我正在尝试将我现有的Web表单网站转换为MVC4网站

我已经读了一些书,开始了解事情是如何运作的,但有一件事我搞不清楚,那就是新布局的(替换母版)与代码隐藏文件的等价物在哪里?在我当前的站点中,我有一个母版页,它定义了一般的外观,但也在codebehind中运行一些代码来动态地更改一些内容(对于本地化和DB生成的菜单系统)

所以,现在我使用的是MVC和布局,我不知道我将在哪里编写所有这些代码,有人能告诉我正确的方向吗


(我知道MVC没有代码,它使用控制器。)

正如您所知,MVC是三层体系结构

  • 模型
  • 看法
  • 控制器
  • 模型是数据实体。您需要存储或显示数据

    视图是将呈现给用户的html或表示层

    控制器是代码隐藏文件,所有代码都将进入控制器。它从模型中获取数据并应用业务逻辑,然后传递到视图以显示或从视图中获取更新的数据,然后传递到模型并保存到数据库

    _layout.cshtml文件位于路径
    ~/Views/Shared/\u layout.cshtml
    处。它是mvc中的母版页。您将看到您的局部视图包含

    Layout = "~/Views/Shared/_Layout.cshtml";
    
    这一行在页面顶部。您可以更改任何视图的母版页,并且可以有多个布局

    布局包含许多局部视图,如左导航、顶部导航和内容。每个都可以从控制器定制

    以下是一些可能对您有所帮助的链接:


    你找不到任何你想做的事情的例子,因为MVC不是这样做的。没有代码落后的等价物

    你“试图”做错事了。MVC布局只是模板文件。它们没有代码隐藏,除了简单的显示逻辑之外,它们应该没有其他功能

    MVC是与WebForms不同的范例。您没有使用像WebForms这样的服务器端控件。因此,在布局中包含自己的内容的想法违反了MVC原则

    你基本上陷入了所谓的XY问题。这就是你试图实现某些功能X的地方,你相信要做到这一点你需要做Y,所以你所要问的就是Y。。。当X是你真正需要问的问题时


    请解释你正在尝试做的实际事情,不要假设它必须按照你一贯的方式来做。例如,如果您想本地化某个内容,请询问如何本地化某个内容。如果您想在某个地方使用动态内容,请询问如何做到这一点,但您需要更具体地了解这些单独的问题,而不是像这里所做的那样对它们进行掩饰。

    创建一个基本控制器类,并使您的所有控制器都从中继承

    MVC相当于WebForms的母版页代码隐藏就是这个基本控制器,您可以在其中放置多个控制器所需的代码


    这是一个复杂的问题。基本上没有。使用子操作查找局部视图。如果要将
    活动的
    内容添加到布局中,可能需要使用首先调用控制器操作的局部视图。该操作能够将模型传递给视图,并成为一种代码隐藏形式。谷歌搜索“带有子操作的部分视图”不会返回任何看起来有点关联的内容,主要是将部分视图与部分渲染进行比较。但是如果我理解你的话,没有简单的方法可以让我的网站拥有一个包含一些动态生成内容的顶级布局?我越是关注如何转换成MVC,MVC就越是不适合动态网站的。子操作与代码隐藏有相似之处。我的版面中有很多动态内容。它总是用子动作或AJAX创建的。另外,请查看小节。它们允许您在视图中定义在布局中呈现的部分查看这个演示如何使用2个局部视图的完整示例:我不想动态更改视图的布局。我希望有一个主布局,定义整个网站的外观和感觉,其中将包含一些动态项目,如导航菜单和一些需要本地化的文本。我有更新的答案,但我觉得你需要学习一些基本知识,并开始练习。我已经在Web表单中工作了多年,正如我所说,这是MVC工作的第一天。我之所以尝试转换我的网站是为了让我能学到这些东西。不幸的是,对我来说,我不能仅仅从阅读中学到东西,我可以从看到例子和基于这些例子的工作中学到东西,但我找不到任何我正在尝试做的事情的例子。我希望在这个网站上得到一些友好的帮助,但看起来这不会发生,所以我只想说“去你的MVC”。我研究得越多,web应用程序的错误就越大。我想做的是找出如何制作一个布局页面,让我的视图可以在其中运行(比如母版页到内容页的关系),并在其中运行c代码。我有一个主导航菜单,它是根据SQL server中的数据生成的。MVC的布局文件需要以某种方式连接到控制器,以便它可以执行LINQ代码从SQL server中提取数据并将其分配给菜单系统。同样的功能也需要在子布局上完成,以控制侧菜单。@MatthewVerstraete-MVC提供了许多可以帮助您完成此操作的功能,包括Razor部分、局部视图、操作、Razor帮助程序、ajax方法等。。等等有许多方法,您使用的是什么