5

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

我已经阅读了一些内容并开始了解事情是如何工作的,但我无法弄清楚的一件事是对于新的布局(替换 MasterPages),它在哪里等同于代码隐藏文件?在我当前的站点中,我有一个母版页,它定义了一般外观和感觉,但也在代码隐藏中运行了一些代码以动态更改一些内容(用于本地化和数据库生成的菜单系统)。

所以现在我正在使用 MVC 和布局,我不知道我会在哪里编写所有这些代码,谁能指出我正确的方向?

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

4

3 回答 3

3

As you Know MVC is three layer architecture.

  1. Model
  2. View
  3. Controller

Model is the data entities. You need to store, or show the data.

Views are the html or presentation layer which would be rendered to users.

Controller are the code behind file all of your code would go in controller. It gets data from Models and apply business logic and then pass to views to show or get updated data from view and pass to models and then save to database.

_layout.cshtml file is present at path of ~/Views/Shared/_Layout.cshtml. It is master-page in mvc. You would see your partial-views contains

Layout = "~/Views/Shared/_Layout.cshtml";

this line at top of page. You can change master-page for any views and you can have multiple Layouts.

Layout contains many partial-views like left-navigation, Top-Navigation and content. each of which can be customized from controller.

Here are some links might help you:

于 2013-06-09T18:29:20.820 回答
3

创建一个 Base Controller 类并让您的所有控制器都从它继承。

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

如何为每个请求执行通用代码?

于 2015-02-25T15:43:55.033 回答
1

你找不到任何你正在尝试做的事情的例子,因为这不是在 MVC 中完成的。没有等同于代码隐藏的东西。

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

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

你基本上陷入了所谓的 XY 问题。那就是您尝试实现某些功能 X 的地方,并且您认为要做到这一点您需要做 Y,所以您所问的只是 Y……当 X 是您真正需要询问的内容时。

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

于 2013-06-09T20:03:16.383 回答