gpt4 book ai didi

asp.net-mvc - ASP.NET Web 表单作为 ASP.NET MVC

转载 作者:行者123 更新时间:2023-12-02 05:39:50 25 4
gpt4 key购买 nike

对于标题可能产生的误导,我深表歉意,但我不知道合适的标题。

随意编辑。

无论如何,我正在使用 ASP.NET Web 窗体,也许这不是 Web 窗体的用途,但我喜欢手动构建和填充 HTML 元素。它给了我更多的控制权。

我不使用 DataBinding 之类的东西。我使用 SqlConnection、SqlCommand 和 SqlDataReader,设置 SQL 字符串等并从 DataReader 读取数据。如果你喜欢老派。 :)

我确实创建了 WebControl,这样我就不必每次需要一些控制时都进行复制粘贴,但大多数情况下,我需要将 WebControl 呈现为 HTML,这样我就可以将该 HTML 附加到呈现最终输出的其他函数中控制在里面。

我知道我可以使用 control.RenderControl(writer) 呈现控件,但这只能在(预)Render 或 RenderContents 覆盖中完成。

例如。

我有一个 dal.cs 文件,其中存储了与数据库通信的所有静态函数和空值。函数主要返回字符串,以便可以将其附加到其他函数中以呈现最终结果。

我这样做的原因是我想尽可能地将编码与 HTML 分开,这样我就不会在 HTML 中执行 <% while (dataReader.Read()) %> 并显示数据。我把它移到了代码隐藏中。我还使用此函数在 AJAX 响应的 HttpHandler 中呈现。

这很完美,但是当我想添加一个控件(ASP.NET 服务器控件(.cs 扩展名,而不是 .ascx))时,我不知道该怎么做,所以我看到我自己编写了相同的控件作为返回字符串的函数或该控件内部的另一个函数,该函数返回字符串并替换 RenderContents 所做的工作,这样我就可以在需要将控件附加到另一个字符串时调用该函数。我知道这可能不是一个很好的做法。

当我看到所有关于 ASP.NET MVC 的教程/视频时,我认为它适合我的需求,因为对于 MVC,你必须自己构建所有(或大部分)内容,我现在已经在做使用网络表单。

在介绍了这么长的内容之后,我想问一下如何构建我的控件以便我可以像我提到的那样使用它们(返回字符串),或者我必须忘记服务器控件并将控件构建为函数并以这种方式使用它们?使用 ASP.NET 服务器控件(.cs 扩展名)是否有可能,或者当我说我没有正确使用它时我是对的。

明确地说,我在谈论如何正确使用网络表单,但要避免数据绑定(bind),因为我想自己构建所有内容(在代码隐藏中呈现 HTML)。
有人可能认为我在附加字符串,如“some”+“string”,但我不是。我为此使用了 StringBuilder,所以不会很慢。

欢迎大家提出意见。

最佳答案

您需要停止考虑“控件”和网络表单。 MVC 是一种完全不同的构建应用程序的方式。

我也讨厌 WebForms 中的自动渲染器,它们会生成毫无意义的可怕 html。但是,您不想在代码隐藏中编写 html 并将其作为字符串传递,这很讨厌。您的演示代码与您的逻辑混合在一起,并且您正在用 C# 字符串编写 HTML!

因此,MVC ...... 而不是与代码隐藏和回发进行交互的“小部件”,您的 View 仅显示数据并包含允许您发布到 Controller 的表单。

因此,您可以将 View 强类型化为类型,然后通过模型属性访问您从 Controller 传递给它的数据。与 UserControls 等效的是部分 View (ViewUserControl),可用于模块化类型的呈现代码。例如,您可以创建一个 Address 部分,每次需要呈现时都将其传递给 Person 的 Address 属性。这样您就不会到处重复 html。

附言所有 DAL 的单个文件?

关于asp.net-mvc - ASP.NET Web 表单作为 ASP.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/574108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com