繁体   English   中英

如何在浏览器中使用内联 C# 而不是 Javascript

[英]How to use inline C# in the browser instead of Javascript

我刚刚发现 Microsoft 引入了 Blazor,它允许在浏览器中运行 C# 代码。 当我查看一些教程时,您似乎需要 asp.net 核心后端服务器才能使其工作。 如果我能在浏览器中输入 C# 代码就好了,比如:

<script>

    //C# code
    string myName = "John";
    alert(myName);

</script>

代替

<script>

    //Javascript code
    var myName = "John";
    alert(myName);

</script>

这能做到吗?

不,您不能只是将 C# 代码放在script标记中。 浏览器不知道如何解析和运行 C# 代码。 Blazor 所做的是将 C#(在服务器上)编译成 .Net 程序集,然后通过WebAssembly在浏览器中运行这些程序集。 Blazor 介绍中的详细信息。 这是一个似乎相关的摘录:

Blazor 应用程序基于组件。 Blazor 中的组件是 UI 的一个元素,例如页面、对话框或数据输入表单。

...

组件类通常以带有.razor文件扩展名的 Razor 标记页面的形式编写。 Blazor 中的组件正式称为 Razor 组件。 Razor 是一种将 HTML 标记与 C# 代码相结合的语法,旨在提高开发人员的生产力。 Razor 允许您在具有 IntelliSense 支持的同一文件中的 HTML 标记和 C# 之间切换。 Razor Pages 和 MVC 也使用 Razor。 与围绕请求/响应模型构建的 Razor Pages 和 MVC 不同,组件专门用于客户端 UI 逻辑和组合。

以下 Razor 标记演示了一个组件 ( Dialog.razor ),它可以嵌套在另一个组件中:

 <div> <h1>@Title</h1> @ChildContent <button @onclick="OnYes">Yes!</button> </div> @code { [Parameter] public string Title { get; set; } [Parameter] public RenderFragment ChildContent { get; set; } private void OnYes() { Console.WriteLine("Write to the console in C#! 'Yes' button was selected."); } }

和:

在浏览器中构建并运行 Blazor WebAssembly 应用程序时:

  • C# 代码文件和 Razor 文件被编译成 .NET 程序集。
  • 程序集和 .NET 运行时被下载到浏览器。
  • Blazor WebAssembly 引导 .NET 运行时并配置运行时以加载应用程序的程序集。 Blazor WebAssembly 运行时使用 JavaScript 互操作来处理 DOM 操作和浏览器 API 调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM