asp.net web应用程序和asp.net web窗体应用程序的区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net web应用程序和asp.net web窗体应用程序的区别?相关的知识,希望对你有一定的参考价值。
不是web应用程序与windows应用程序的区别
懂了!!
WebForm 应用程序部署在服务器端,用户通过浏览器与其交互; WinForm 应用程序需要部署到客户端,用户通过专门为该程序打造的用户界面与其交互。
WebForm 是基于 Web 浏览器的网络应用程序窗体 ,winform 是基于 Windows 桌面应用程序窗体 .
一、主体不同
1、web应用程序:是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序。
2、web窗体应用程序:可以使用 Web 窗体页来创建可编程的 Web 页,这些 Web 页用作 Web 应用程序的用户界面。
二、特点不同
1、web应用程序:借助IE等浏览器来运行。WEB应用程序是B/S模式。Web应用程序首先是“应用程序”,和用标准的程序语言。
2、web窗体应用程序:Web 窗体页在任何浏览器或客户端设备中向用户提供信息,并使用服务器端代码来实现应用程序逻辑。
三、优势不同
1、web应用程序:是由完成特定任务的各种Web组件构成的并通过Web将服务展示给外界。在实际应用中,Web应用程序是由多个Servlet、JSP页面、html文件以及图像文件等组成。
2、web窗体应用程序:Web 窗体页输出几乎可以包含任何支持 HTTP 的语言,包括标准通用标记语言的子集HTML与XML、WML 和ECMAScript 。
参考资料来源:百度百科-web应用程序
参考资料来源:百度百科-Web窗体
参考技术A asp.net web应用程序可以分为web窗体应用程序(aspx视图引擎机制)和asp.net web mvc应用程序(razor视图引擎机制,也可以使用aspx视图引擎,不过不推荐使用aspx视图引擎)。webforms中可以拖控件,就和winform一样,控件属性也很相似,最后会在服务器中生成一个控件树以<html>为根,依次向下解析生成一个完整的<html>文档,发送给浏览器形成页面。
mvc中则将网站分为model,view,controller,view用来呈现最后的html文件;controller中有很多的Action,用来处理请求;model是一些实体类模型,可以用来存放数据库中的数据,传到页面显示。同时,mvc中也没有了拖控件的lower操作,默认引入了bootstrap使用来设计页面。而且微软还提供了一些帮助器,HtmlHelper,UrlHelper,AjaxHelper可以很方便的帮助开发人员进行页面的设计。
使用 ajax asp.net 调用 Web 服务
【中文标题】使用 ajax asp.net 调用 Web 服务【英文标题】:Call a web service whith ajax asp.net 【发布时间】:2021-05-27 15:17:01 【问题描述】:我有一个问题:
我尝试调用一个用 VB.NET 编写的 Web 服务:
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports Newtonsoft.Json
<System.Web.Script.Services.ScriptService()>
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")>
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
<ToolboxItem(False)>
Public Class WebService1
Inherits System.Web.Services.WebService
<WebMethod()>
Public Function Popola(cia As String) As Object
Dim p1 As New Persona
p1.cognome = cia
p1.nome = "mario"
p1.eta = 22
Dim p2 As New Persona
p2.cognome = "bianchi"
p2.nome = "luca"
p2.eta = 99
Dim list As New List(Of Persona)
list.Add(p1)
list.Add(p2)
Return JsonConvert.SerializeObject(list, Formatting.Indented)
End Function
之所以有效,是因为我在其他程序中使用它。
问题是在另一个程序WebForm1.aspx
中,我尝试用Ajax 调用它
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication2.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" />
<link href="StyleSheet1.css" rel="stylesheet" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script type="text/javascript">
$(document).ready(function ()
$("#button_login").click(function () // al click del bottone
$.ajax(
type: "POST", // il method
url: "http://localhost/WebService1.asmx/Popola", // la action
data: cia: 88 ,
contentType: "application/x-www-form-urlencoded",
dataType: "json",
success: function ()
alert("ok")
,
error: function ()
console.log(arguments);
console.log("error");
);
);
);
</script>
</head>
<body>
<form runat="server">
<div class="container">
<div class="row">
<div class="col-sm-6">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="button_login" runat="server" Text="Button" />
</div>
</div>
</div>
</form>
</body>
</html>
但是每次它进入Ajax,我都会从函数中得到一个错误:
从源“http://localhost”访问“http://localhost/WebService1.asmx/Popola”的 XMLHttpRequest 已被 CORS 策略阻止:不存在“Access-Control-Allow-Origin”标头请求的资源。
我能做什么?
【问题讨论】:
【参考方案1】:据我了解,您编写的代码属于同一个项目。所以你可以像下面这样修改调用
更改下面的行
url: "http://localhost/WebService1.asmx/Popola",
到
url: "WebService1.asmx/Popola",
它应该可以工作。
【讨论】:
不,不幸的是,它们是 2 个不同项目的 2 个不同代码,我删除了 localhost 的代码但不同。我忘了指定 您正在编写 webmethod 的应用程序是什么类型的。你需要在那边implement CORS policy。【参考方案2】:看来你需要使用JSONP
作为数据类型和crossDomain=true
如下:
$.ajax(
type: "POST",
url: "http://localhost/WebService1.asmx/Popola",
data: cia: 88 ,
contentType: "application/x-www-form-urlencoded",
dataType: "jsonp",
crossDomain:true,
success: function ()
alert("ok");
,
error: function ()
console.log(arguments);
console.log("error");
);
见:Ajax Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource
【讨论】:
以上是关于asp.net web应用程序和asp.net web窗体应用程序的区别?的主要内容,如果未能解决你的问题,请参考以下文章
asp.net asp.net application 升级到 asp.net web 解决找不到控件 批量生成.designer文件