首页 > 编程语言 >VS下TS前端与C#的WebApi后端配合实例

VS下TS前端与C#的WebApi后端配合实例

时间:2023-06-11 10:33:17浏览次数:58  
标签:WebApi C# mytd TS Hosting mydata document mytr public

如题。

1、新建WebApi默认解决方案

WebApi使用.net core下框架默认的例子(WeatherForecast)

以下代码为自动生成

public class WeatherForecast
    {
        public DateOnly Date { get; set; }

        public int TemperatureC { get; set; }

        public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);

        public string? Summary { get; set; }
    }

记得参考VS2019下开发和调用webapi配置跨域。

2、添加空web项目和TS相关配置。参见在vs2022和.net6中调试带typescript的静态页面

解决方案如下:

 控制台运行项目一备用

D:\temp\t\1\WebApplication1\WebApplication1\bin\Debug\net7.0>dotnet webapplication1.dll
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: D:\temp\t\1\WebApplication1\WebApplication1\bin\Debug\net7.0

项目二的几个文件如下:

tsconfig.json

{
    "compilerOptions": {
        "noImplicitAny": false,
        "noEmitOnError": true,
        "removeComments": false,
        "sourceMap": true,
        "target": "es6",
        "outDir": "wwwroot/js"
    },
    "compileOnSave": true,
    "include": [ "ts/**/*" ],
    "exclude": [
        "node_modules",
        "wwwroot"
    ]
}

index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <link href="css/c1.css" rel="stylesheet" type="text/css" />
    <script src="js/t1.js"></script>
</head>
<body onl oad="myinit()">
    <table>

    </table>
</body>
</html>

tq.ts

interface tq {
    Date: Date;
    TemperatureC: number;
    TemperatureF: number;
    Summary: string;
}

几乎完全照搬webapi里的模板

t1.ts

 1 var mydata: tq[];
 2 var mytable: HTMLTableElement;
 3 function myinit() {
 4     let myurl1:string = "http://localhost:5000/WeatherForecast";
 5     fetch(myurl1)
 6         .then(r => r.json())
 7         .then(r => showresponse(r));
 8 }
 9 function showresponse(r: tq[]) {
10     mydata = r;
11     mytable = document.querySelector("table");
12     let mytr: HTMLTableRowElement;
13     let mytd:HTMLTableCellElement;
14     mytr = document.createElement("tr");
15     for (let i in r[0]) {        
16         mytd = document.createElement("td");
17         mytd.textContent = i;
18         mytr.appendChild(mytd);
19     }
20     mytable.appendChild(mytr);
21     for (var i = 0; i < mydata.length; i++) {
22         mytr = document.createElement("tr");
23         for (var j in mydata[i]) {
24             mytd = document.createElement("td");
25             mytd.textContent = mydata[i][j];
26             mytr.appendChild(mytd);
27         }
28         mytable.appendChild(mytr);
29     }
30 }

需要注意:

1、第6行"r.json()"之后,即可得到对象。无需再使用Jons.parse()进行转换。否则转换时,会先生成形如“[object object]”的字符串,读到第2个字符"o"时,因为不是期望的双引号,会报错。

2、初学者应特别注意promise的异步用法。在fetch外面的同步方法中尝试使用返回内容,一般都拿不到返回值。

c1.css

table {
    margin: 0 auto;
    text-align:center;
}

table, td {
    border-collapse: collapse;
    border: 1px solid;
}

运行项目二,结果:

 

标签:WebApi,C#,mytd,TS,Hosting,mydata,document,mytr,public
From: https://www.cnblogs.com/wanjinliu/p/17472570.html

相关文章

  • Spring Cloud Netflix Eureka学习
    SpringCloudNetflixEureka传统的服务治理通讯协议XML-RPC->XML方法描述、方法参数->WSDL(WebServices定义语言)WebServices->SOAP(HTTP、SMTP)->文本协议(头部分、体部分)REST->通常是JSON/XML(Schema:类型、结构)->文本协议(HTTPHeader、Body)W3CSchema:xsd:string原......
  • WGLCOUD简述 - 远程实现重启和关机windows
    WGCLOUD有个功能模块叫做下发指令,可以将关机或重启的指令下发给多个主机执行,使用起来非常简单下发指令同时支持windows主机和Linux主机,其他主机也可以如下,只要选择需要执行指令的windows主机,然后填写指令shutdown-s-t60,再选择执行时间就可以了这个指令标识1分钟后进行关机等执行......
  • Capistrano
    Capistrano是一种在多台服务器上运行脚本的开源工具,它主要用于部署web应用。它自动完成多台服务器上新版本的同步更新,包括数据库的改变。Capistrano最初由JamisBuck用Ruby开发,并用RubyGems部署渠道部署。现在Capistrano不仅限于应用RubyonRails的web应用框架,而且可以用......
  • 【论文阅读】Pyramid Vision Transformer:A Versatile Backbone for Dense Prediction
    ......
  • docker 安装并配置nacos2.2.2 单机
    docker拉取文件找镜像参考mysql安装找镜像步骤:https://www.cnblogs.com/CodeLuckly/p/15710643.html拉取命令:dockerpullnacos/nacos-server:v2.2.2挂载目录:就是为了让nacos的容器中文件映射到宿主机上mkdir-p/mydata/nacos/logs/#新建logs目录......
  • 【蓝桥杯集训·周赛】AcWing 第96场周赛
    第一题AcWing4876.完美数一、题目1、原题链接4876.完美数2、题目描述如果一个正整数能够被2520整除,则称该数为完美数。给定一个正整数n,请你计算[1,n]范围内有多少个完美数。输入格式一个整数n。输出格式一个整数,表示[1,n]范围内完美数的个数。数据范围前3个测试点满......
  • graalvm nodejs + spire office 实现office 处理
    实际上是一个比较简单的处理,主要是利用了graalvm的nodejs可以方便的使用外部jar,我们就可以使用其他nodejsweb框架,结合spireoffice实现专业可靠的office转换处理预备主要是安装graalvm以及nodejsgraalvm已经不支持包含nodejs了,需要独立安装参考对于grralvm安装使用......
  • cedar amazon 开源的安全框架
    cedaramazon开源的安全框架,包含了指南,一个基于rust的实现(当然还包含了一些其他语言的binding)目前已经提供了RBAC以及ABAC能力,casbin是一个比较类似的东西,功能点是有一些差异,是一个值得看看学习的项目参考资料https://aws.amazon.com/cn/blogs/opensource/using-open-source-c......
  • trc golang 进程请求追踪包
    trc是一个方便的golang进程请求追踪框架,可以提供方便的请求追踪查看参考使用代码来说官方示例,完整的可以查看官方packagemain import("context""fmt""log""math/rand""net/http""net/http/httptest"_"net/http/pprof""strings""t......
  • 盘点一个Python自动化办公过程中Excel数据为空的处理
    大家好,我是皮皮。一、前言前几天在Python群,粉丝问了一个Python自动化办公的问题,这里拿出来给大家分享下。这个问题相信很多人都会遇到,原始Excel数据中,这个【编号】列一般是有相关数据的,但是如果没有的话,就先写为“暂无编号”,如下图所示:后来发现通过Python代码,将其写入到word文件,不......