2

我正在研究 asp.net 和 jQuery,我发现有几种方法可以在 html 中创建表单。

作为一名windows开发人员,我发现最常用的方法如下:

  1. HTML 表单
  2. ASP.NET Web 窗体
  3. ASP.NET MVC
  4. jQuery
  5. AJAX

现在,我想更多地了解这些差异。我看到Html Forms是最基础的,可以用jQUERY集成,也可以用jQUERY集成ASP.NET Webforms。

a) 如果我使用 jQuery,我可以认为 AJAX 对简单的 web 表单(json 的后获取)没用吗?

b) 对于一个简单的网络表单,我可以考虑太多 MVC 吗?

c) 你会选择哪一个,为什么?

感谢您的帮助,我已经阅读了很多网站,以至于我感到非常困惑!

编辑 -

更多细节:我有一个通过 REST 调用提供 jsons 的后端,我需要制作一些页面(前端)来显示这些调用的结果(例如:在日历中选择一个日期,告诉我是否有约会)。服务器逻辑已经存在,我正在尝试使用最佳方法来保持它的锐利、凉爽和干净(如果可能的话,还要好看!)

4

3 回答 3

1

至于 WebFroms:

ASP.NET Web 窗体允许您使用熟悉的拖放、事件驱动模型构建动态网站。设计界面和数百个控件和组件使您可以快速构建具有数据访问权限的复杂、强大的 UI 驱动站点。

http://www.asp.net/web-forms

至于 MVC(微软):

ASP.NET MVC 为您提供了一种强大的、基于模式的方法来构建动态网站,该方法可以清晰地分离关注点,并让您可以完全控制标记以实现愉快、敏捷的开发。ASP.NET MVC 包含许多特性,这些特性支持快速、友好的 TDD 开发,以创建使用最新 Web 标准的复杂应用程序。

http://www.asp.net/mvc

至于你的问题:

a)您的问题有点含糊,我认为您所说的 AJAX 是指微软的AJAX 控制工具包?这是一堆控件,使您能够(在后台)从服务器异步检索数据,而不会干扰现有页面的显示和行为。jQuery 是 JavaScript 库,它有更多的功能。这不仅仅是为了对您的数据进行 ajax 处理。您可以在 AJAX 控件中使用 jQuery。

b) 是的。MVC基本上是一种基于模式的方式来创建您的 Web 应用程序**(模型-视图-控制器)**,但我认为您指的是 Microsoft MVC。这取自Microsoft MVC站点:

决定何时创建 MVC 应用程序

您必须仔细考虑是否使用 ASP.NET MVC 框架或 ASP.NET Web 窗体模型来实现 Web 应用程序。MVC 框架不会取代 Web 窗体模型;您可以将任一框架用于 Web 应用程序。(如果您有现有的基于 Web 窗体的应用程序,这些应用程序将继续像往常一样工作。)

在您决定为特定网站使用 MVC 框架或 Web 窗体模型之前,请权衡每种方法的优点。

基于 MVC 的 Web 应用程序的优点

ASP.NET MVC 框架具有以下优点:

通过将应用程序划分为模型、视图和控制器,可以更轻松地管理复杂性。它不使用视图状态或基于服务器的表单。这使得 MVC 框架非常适合希望完全控制应用程序行为的开发人员。它使用前端控制器模式,通过单个控制器处理 Web 应用程序请求。这使您能够设计一个支持丰富路由基础设施的应用程序。有关详细信息,请参阅 MSDN 网站上的前端控制器。它为测试驱动开发(TDD)提供了更好的支持。它适用于需要对应用程序行为进行高度控制的大型开发人员和 Web 设计人员团队支持的 Web 应用程序。

基于 Web 表单的 Web 应用程序的优点

基于 Web 表单的框架具有以下优点:

它支持通过 HTTP 保存状态的事件模型,这有利于业务线 Web 应用程序开发。基于 Web 窗体的应用程序提供了数百个服务器控件支持的数十个事件。它使用页面控制器模式,将功能添加到各个页面。有关详细信息,请参阅 MSDN 网站上的页面控制器。它使用视图状态或基于服务器的表单,可以更轻松地管理状态信息。它适用于希望利用大量可用组件进行快速应用程序开发的小型 Web 开发人员和设计人员团队。一般来说,应用程序开发不太复杂,因为组件(页面类、控件等)是紧密集成的,并且通常比 MVC 模型需要更少的代码。

你在这里有关于网络表单的很好的讨论:

https://stackoverflow.com/questions/46031/why-does-the-asp-net-web-forms-model-suck

编辑*


MVC 编程模型具有以下优点:

  • 视图使开发人员能够精确控制呈现的 HTML。
  • 您可以使用路由引擎来精确控制 URL。
  • 业务逻辑、输入逻辑和用户界面逻辑分为模型、控制器和视图。
  • 单元测试技术和测试驱动开发(TDD)是可能的。

MVC的缺点:

  • MVC 可能比网页或 Web 表单更难理解。
  • MVC 强制您分离关注点(模型、视图和控制器)。一些程序员可能会觉得这很有挑战性。
  • 您无法通过将控件拖到页面上来直观地创建用户界面。
  • 您必须对 HTML、CSS 和 JavaScript 有充分的了解才能开发视图。

Web 窗体编程模型具有以下优点:

  • 使用服务器控件和设计视图,您可以直观地设计页面。
  • 您可以使用范围广泛的功能强大的控件来封装大量功能。
  • 您无需编写多行服务器端代码即可显示数据。
  • .aspx 文件中的用户界面与代码隐藏文件中的输入和业务逻辑分开。

使用 Web 表单站点有一些缺点:

  • ASP.NET Web 窗体页面生命周期是 HTTP 上的一个抽象层,可以以意想不到的方式运行。您必须完全了解此生命周期才能在正确的事件处理程序中编写代码。
  • 您无法精确控制服务器端控件生成的标记。
  • 控件可以向呈现的 HTML 页面添加大量标记和状态信息。这会增加加载页面所需的时间。

c) 视情况而定!你想让我做什么?见(b)

对于简单的站点/应用程序,我将使用HTML5/CSS3/JavaScript(ClientSide) 和PHP/MySql(ServerSide/Database)

于 2013-04-01T11:58:31.553 回答
1

当您深入了解它时,有两种方法可以创建表单并且都使用客户端代码。

  1. HTML
  2. JavaScript

在几乎所有情况下,使用直接 HTML 是更好的选择。(请参阅 渐进式增强不显眼的 JavaScript)。

然而,如果没有表单处理程序,表单将毫无用处,这需要一些服务器端代码。您还可以使用服务器端代码生成创建表单本身的客户端代码。

ASP.NET 是一组服务器端技术,其中一些对处理表单很有用。有很多 ASP.NET 的替代品,我使用了很多替代品,而不是 ASP.NET,因此请谨慎使用以下内容,因为我可能对细节有些误解。

WebForms 是原始的 ASP.NET 做事方式。他们寻求尽可能多地从开发人员那里抽象出客户端代码,这样他们就可以在不了解 Web 标准的情况下创建网站。只要您不偏离界限,这就会使事情变得快速且类似于 Windows,此时它就变成了紧身衣。

ASP.NET MVC 是一种新的(现在不是那么新)和闪亮的方法,它遵循 Ruby on Rails 在开源世界中流行的设计模式(所述模式在 Catalyst、Django、Cake、Play 和 Mojito 中也可用(为五种不同的语言命名一个 MVC 框架))。

如果我使用 jQuery,我可以认为 AJAX 对简单的 web 表单(json 的后获取)没用吗?

Ajax 是指发送 HTTP 请求并处理响应,使用 JavaScript 并且不离开页面的术语。如果您想从客户端来回传递 JSON,那么您几乎必须使用 Ajax(任何其他方法都会引发“为什么是 JSON?”的问题)。

对于一个简单的网络表单,我可以考虑太多 MVC 吗?

什么是简单的网络表单?

对于 WWW 上的任何形式,您都需要某种形式的服务器端技术。(JavaScript 应用程序是另一回事)。

你会选择哪一个,为什么?

很难说,因为“网络表单”是解决方案的一部分,而不是问题,而且您还没有说您要解决什么问题。不过总的来说我会在服务器上使用 Perl(因为它受到 CPAN 的良好支持),或者使用完全手工制作的 JavaScript、一个或两个微型库,或者 YUI(取决于问题的复杂程度和级别需要浏览器支持)。不过那里有很多个人喜好。根据您可用的技能选择技术通常是更好的选择。

于 2013-04-01T12:41:53.587 回答
0

我假设您只是想创建一个表单来将信息发布到电子邮件脚本或数据库。

我认为设置 Web 表单最简单的方法是使用 HTML、JQuery 和 PHP。您只需创建一个 HTML 表单,使用 JQuery 获取数据并将此信息发送到 PHP 脚本。

像这样的东西:

HTML:

<input id="name" placeholder="Name">
<input id="email" placeholder="E-mail">
<a href="#" id="send">Send</a>

查询:

$("#send").click(function(e){
   e.preventDefault();
   $.post("send.php", { 
       name: $("#name").val(), 
       email: $("#email").val() 
   });
});

PHP:

$name = $_POST['name'];
$email = $_POST['email'];
//do something with $name and $email

这是一个非常简单的例子,当然你应该改进它。

编辑:使用 JQuery 发布或检索数据基本上是 AJAX。

于 2013-04-01T11:30:53.717 回答