加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – Asp.net页面是否应该在MVC中包含代码隐藏文件

发布时间:2020-12-16 06:29:38 所属栏目:asp.Net 来源:网络整理
导读:我的Web应用程序是Asp.Net MVC模式. .aspx页面都没有代码隐藏文件.有人告诉我,由于应用程序遵循MVC模式,.aspx页面没有代码隐藏文件.所有C#编码都是内联完成的. 我的问题是,如果我们遵循MVC模式,我们不应该在.aspx页面的文件后面有代码.我没有看到这些.aspx页
我的Web应用程序是Asp.Net MVC模式. .aspx页面都没有代码隐藏文件.有人告诉我,由于应用程序遵循MVC模式,.aspx页面没有代码隐藏文件.所有C#编码都是内联完成的.

我的问题是,如果我们遵循MVC模式,我们不应该在.aspx页面的文件后面有代码.我没有看到这些.aspx页面和我们进行内联编码的传统ASP页面之间有任何区别.为了利用Asp.Net并保持代码/ html,我们不应该为每个.aspx页面都有一个代码隐藏文件?

如果有人能够清楚地解释这一点,那就太棒了.

提前致谢.

解决方法

Asp.net MVC不使用真实的代码隐藏.但.您不应该将您的页面视为传统的ASP页面,因为它们不是.大多数处理(如代码隐藏)都是在控制器操作中完成的. ASPX页面几乎不显示该处理的结果(当动作结果是ViewResult或PartialViewResult时).

所以我们可以说控制器动作“是”许多ASPX文件的代码隐藏.

这当然是一个非常广泛的简化,但你可以这样理解它.

补充说明

您可能会争辩说在ASPX文件中编写C#代码与编写ASP代码非常相似,但让我让您想一下.每当你添加时,在Asp.net WebForms中

<asp:Repeater ... />

你基本上做了什么,是一个具有一些额外功能的不同形式的foreach声明.在Asp.net MVC中,您编写的是一个实际的foreach语句,而不是您想要的任何其他功能.大多数时候你只是渲染没有附加功能的项目,所以foreach将是:

>比丰富的服务器端控制更快
>更简单,因为为每个项目呈现的HTML将是大约.与转发器项目的模板相同
>资源匮乏,因为它只是一个简单的语言构造,而不是一些必须实例化,执行和保存的服务器端控件(如状态)

为什么控制器操作可以成为许多ASPX的代码隐藏?

因为我们可以拥有这种代码

public ActionResult Index()
{
    var data = /* get some data */
    if (data.Count > 0)
    {
        /* first ASPX */
        return View("DisplayItems",data);
    }
    else
    {
        /* second ASPX */
        result View("DisplayEmpty");
    }
}

甚至没有提到这个代码所做的事情比一些复杂的页面生命周期处理简单得多,这些处理需要处理两种状态,这将导致更复杂的ASPX文件具有所有HTML.

在Asp.net中,MVC代码非常简单/基本,因为它只执行它需要做的事情,并且视图也更简单,因为每个代码只能提供一个单一的状态/情境/目的.没有像Asp.net WebForms那样多面.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读