相当于ASP.NET Core中的Web窗体?

Mr.*_*. A 9 forms asp.net-core

为什么? 嗨,我正在进行计算机科学的最后一年项目,该项目是一个管理大学的系统,比如openSIS,但是使用ASP.NET Core来构建它.

什么?我需要有关如何使用常规HTML表单添加,更新和删除数据的帮助,例如via <form/><input type="submit"/>.

如果这个问题过于宽泛,那么就如何将问题的范围缩小到与完成该项目相关的一组主题有所帮助.

Sha*_*son 18

您要求做的事情是使用ASP.NET Core "开箱即用" 并且不需要第三方解决方案.

解决方案#1:ASP.NET核心Razor页面

这可能是学习最少的最直接的方法,它是现代的"经典ASP.NET Web窗体".你可能会问这个问题:

微软 - Razor Pages简介

基本思想是在Visual Studio中创建"ASP.NET核心Web应用程序"项目并选择"Web应用程序"项目模板(确认在单击"确定"之前在模板选择对话框中选择了".NET Core".)

然后,您可以添加包含HTML,CSS和JavaScript的"Razor Pages",并通过带有"提交"按钮的常规HTML表单使用简单的回发方法.上面的链接有一个关于这样做的主题.

解决方案#2:ASP.NET核心MVC

这是第二种最直接的方法,但确实需要您掌握MVC概念:模型,视图控制器.实现Razor Pages只需要掌握HTML和Razor Page代码隐藏,但是,作为模式的MVC将为您生成的项目提供更加可维护和可测试的项目方法.

Microsoft - ASP.NET核心MVC概述

基本思想是在Visual Studio中构建"ASP.NET核心Web应用程序"项目,然后选择"Web应用程序(模型 - 视图 - 控制器)"项目模板.

而不是添加的页面添加视图,做任何这些有用的意见将有相应的控制器.也将有模型定义,因为你会在剃刀页面的解决方案看.对于MVC,模型通过Actions发布到控制器.

上面的链接详细介绍了主题,并且在一般的MVC概念上有许多Stack Overflow帖子.

解决方案#3:RESTful Web API和客户端JavaScript

这可能是最不直接和最技术性的方法.您将需要熟悉"JavaScript"和"XHR","JSON"(或XML,但JSON已成为事实上),并且您将希望精通"RESTful Web服务"意味着什么,即.HTTP支持POST,GET和DELETE资源的基本动词.

Microsoft - 构建Web API

基本思想是使用MVC脚手架在Visual Studio中创建"ASP.NET核心Web应用程序"项目.然后,您可以实现控制器以充当RESTful Web服务.您可以添加Razor Pages和/或MVC Views来提供HTML和JavaScript.

使用这种方法,您可以创建永远不需要重新加载的"单页面应用程序",其中可以预先交付整个应用程序的HTML和JavaScript,然后使用RESTful Web服务来修改客户端的UI.这可以变得先进,大多数开发人员都希望使用客户端模板引擎.最简洁和最简单的使用可能是KnockoutJS,但其他更受欢迎(也更复杂.)Knockout具有解决一个非常具体问题的价值:将HTML UI数据绑定到JavaScript对象.

无论你采取什么方法,从这里开始:

Microsoft - ASP.NET核心入门

HTH!

  • 使用“经典ASP.NET Web表单”(即aspx,ascx,母版页和朋友)与.NET的未来背道而驰,也许应该将其视为仅用于向后兼容。从概要文件管理到托管运行时,过去15年来,ASP.NET Web堆栈已取得了许多进步-有了.NET Core,就没有针对旧版本ASP.NET Web堆栈的真正迁移路径/计划。“新开发人员”应将这些视为独立的体验途径,“新开发人员”可能希望完全避免早期使用经典的ASP.NET模板/项目。 (2认同)

Tom*_*ceg 9

如果您喜欢Web Forms开发方式,或者您有一个大型ASP.NET Web窗体应用程序并且需要在其中实现新页面,则可以尝试使用DotVVM.

它不是".NET Core上的Web窗体",而是:

  • DotVVM中的许多概念类似于ASP.NET Web窗体(回发,服务器控件,母版页,甚至控件名称和页面生命周期事件)
  • 它是简单易学的ASP.NET Web窗体开发
  • 没有隐秘的viewstate隐藏的领域
  • 控件不会产生丑陋的HTML
  • MVVM模式被用来
  • 无需知道或编写JavaScript - C#,HTML和CSS足以开始编码
  • DotVVM支持.NET Core完整的.NET Framework
  • 可以添加到.NET Framework上的现有ASP.NET Web窗体或MVC应用程序
  • DotVVM是开源的
  • 带有IntelliSense和项目模板的Visual Studio扩展

免责声明:我是DotVVM的作者之一.这篇文章并不是要宣传这个项目,我只是相信它回应的问题,因为建DotVVM的主要动机是一个事实,即Web窗体不会移植到ASP.NET的核心,许多人正在寻找的类似的方式构建Web应用程序.DotVVM不是Web Forms到.NET Core的端口.我们的目的是构建一个概念上相似的框架,但它避免了Web Forms被批评的东西(视图状态,可测试性和丑陋的HTML输出).


Tse*_*eng 6

如果您指的是来自 ASP.NET 的 WebForms(在 MVC webstack 出现之前),则没有用于 ASP.NET Core 的 WebForms,并且不太可能被移植。

然而,有一个类似的项目(通常称为 Razor Pages 或 View Pages,请参阅RazorPages GitHub 存储库)允许创建不受控制器支持的 Razor 视图。

但据我所知,它还没有准备好发布(nuget.org 上没有适用于它的 nuget 包),您必须使用一些以前的夜间构建或稳定的 myget 存储库。