我在同一解决方案中有一个完全可操作的Blazor服务器端项目和一个.NET Core 3 MVC项目。我现在正在尝试在我的MVC项目中使用Blazor项目中的组件。
我设法将组件呈现在MVC页面上,但是Blazor组件上的按钮单击不会触发组件的onclick事件,而是直接导航到https:// localhost:44341 /?
我不清楚我需要在MVC解决方案中进行哪些更改才能使其正常工作?官方文档讨论了在MVC项目中使用组件的问题,并且在与Dan Roth的视频聊天中提到了它,但是都没有详细介绍如何实现。
任何人都可以向我介绍如何将服务器端Blazor改造为MVC项目的完整步骤(或为我提供示例)吗?
我的Blazor项目仍然具有标准模板的Counter组件,因此我尝试通过引用Blazor项目并将其添加到我的MVC解决方案中,然后将其添加到我的index.cshtml文件中:
<div id="Counter">
@(await Html.RenderComponentAsync<Counter>())
</div>
Run Code Online (Sandbox Code Playgroud)
可以正确渲染,但单击按钮不起作用。
我已将JS文件添加到MVC应用程序的_Layout页面:
<script src="_framework/blazor.server.js"></script>
Run Code Online (Sandbox Code Playgroud)
在MVC项目的Startup.cs文件中打开“服务器端Blazor”:
services.AddServerSideBlazor();
Run Code Online (Sandbox Code Playgroud)
我还向MVC项目添加了Pages和Shared目录,并复制了_Imports和MainLayout文件-不确定是否需要这样做。
如果这样做没有做,我尝试从所有Blazor模板(客户端,客户端托管和服务器端)中分解新项目以寻找线索,但是所有这些示例都设置为具有单个Blazor的完整SPA。入口点(App文件)托管在.html文件中,而我想在许多不同的现有MVC页面上呈现Blazor组件。
然后,我尝试将这些项目的一部分(以及我的Blazor项目的一部分)添加到MVC项目中,但是无法使其完全正常工作。
我也尝试按照这里的答案进行操作,但这是将Blazor组件文件添加到MVC项目中的工作,而我的Blazor文件当前(大多数情况下)在另一个项目中。
services.AddServerSideBlazor();在MVC应用程序的Startup.cs中添加了。还有什么需要的吗?AspNetCore.Routing,如果仅将组件放在现有的MVC页面上(我将没有Blazor页面,而只有Blazor组件),是否仍需要切换到Core 3的端点路由。 <app>@(await Html.RenderComponentAsync<App>())</app>_Host.cshtml中的行放在我的MVC项目中的某个位置?我有代码,
public class VendorManagementController : Controller
{
private readonly IVendorRespository _vendorRespository;
public VendorManagementController()
{
_vendorRespository = new VendorRespository();
}
Run Code Online (Sandbox Code Playgroud)
现在我想使用依赖注入。所以代码将是
public class VendorManagementController : Controller
{
private readonly IVendorRespository _vendorRespository;
public VendorManagementController(IVendorRespository vendorRespositor)
{
_vendorRespository = vendorRespositor;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,我找不到可以创建VendorRespository对象的地方以及如何将其传递给VendorManagementController已定义的参数化构造VendorManagementController(IVendorRespository vendorRespositor)函数?
在使用ES6类时,我正在寻找React mixins的替代品.
我想在我的react组件中注入一些函数,但这些函数需要React元素.
React ES5使用了mixin,但React Classes不支持mixins.React类中mixins的替代方法是什么?
我有一个解决方案,其中包含一个 Xamarin 表单应用程序和一个为该应用程序提供后端的 WebAPI 2 服务。
当我将解决方案设置为具有单个启动项目时,我可以使用工具栏中的下拉列表来选择应将项目部署到哪个设备/模拟器,但是当我选择多个启动项目时,我无法再选择模拟器/设备(模拟器的下拉列表消失)。因为没有部署目标,所以构建失败。
是否有另一种方法来指定 Android 项目应该在哪个模拟器/设备上启动(可能在代码中,例如在项目文件中?)。
我有一个在事务中做一些工作的方法:
public async Task<int> AddAsync(Item item)
{
int result;
using (var transaction = await _context.Database.BeginTransactionAsync())
{
_context.Add(item);
// Save the item so it has an ItemId
result = await _context.SaveChangesAsync();
// perform some actions using that new item's ItemId
_otherRepository.Execute(item.ItemId);
transaction.Commit();
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
我想添加单元测试来检查如果_context.SaveChangesAsync或_otherRepository.Execute失败则事务会回滚,这可能吗?
sqlite unit-testing transactions in-memory-database entity-framework-core
对于完整的.NET项目,您可以在以下复选框中打勾,以使该项目在COM中可见Project Properties > Application tab > Assembly Information..:
但是,Assembly Information..对于.NET Standard项目,该按钮不存在,而是在上输入了数据Project Properties > Package tab,但该选项卡没有以下复选框Make Assembly COM-Visible:
您仍然可以通过其他方法使.NET标准库COM可见,还是出于某种原因这样做没有意义?
目前,Office 365版本的Word实际上是否有任何Graph API端点?
(如果没有,他们有计划吗?)
我发现了文档中的Excel图形API,在图形API的Outlook,在图形API的OneNote,但我无法找到一个词API的任何提及。
在Graph Overview Official文档的Productivity部分中没有提到Word 。
在Graph Explorer Samples中没有任何迹象:
在Microsoft Graph GitHub存储库中似乎没有与Word相关的子项目。
此问题询问有关Office 365 API的类似问题。我不确定Graph API是否是Office 365 API的更名,根据官方文档,这似乎已经寿终正寝了?
最终,我们正在寻找的是Office PIA的替代品,我们可以在Azure托管的Web应用程序中使用它来构建Word文档。我们一直在使用Open XML,但是我们需要OpenXML不支持的动态页面编号。
我正在使用Microsoft Visual Studio Professional 2019 RC版本16.0.0(VisualStudio.16.Release / 16.0.0 + 28729.10),发现在保存项目文件时间歇性地撤消了对项目文件的更改。
当我添加的NuGet包消失或更新的版本恢复到以前的版本时,这已经证明有点令人困惑。
同样,如果我在项目中包含了文件,那么保存后它们将不再包含在文件中,因此看起来更改没有正确地添加到csproj文件中?
还有其他人遇到这种情况吗,有人知道为什么会这样吗?
我正在尝试在示例应用程序中实现一个小的 crud。
我在应用程序中使用 blazor,但发现服务器调用存在一些问题。
我创建了一个简单的 API 控制器,名称为 Employee,方法为 HTTP 动词。
[ApiController]
[Route("[controller]")]
public class EmployeeController : ControllerBase
{
EmployeeRepository objemployee = new EmployeeRepository();
[HttpGet]
[Route("api/Employee/Index")]
public IEnumerable<Employee> Index()
{
return objemployee.GetAllEmployees();
}
}
Run Code Online (Sandbox Code Playgroud)
这
empList = await Http.GetJsonAsync<Employee[]>("/api/Employee/Index");
Run Code Online (Sandbox Code Playgroud)
line 报告了一个问题,我不知道它,因为我是 blazor 的新手。我应该在我的代码中做什么?
用asp构建的应用程序。Net core 3.0”、“blazor preview 9”。
输出:我尝试遵循指南并查找示例实现,但无法解决问题。
我收到以下异常:
WASM: Unhandled exception rendering component:
d.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1 WASM:
System.Text.Json.JsonException:
'<' is an invalid start of a value. Path: $ | LineNumber: 0 | BytePositionInLine: 0. --->
System.Text.Json.JsonReaderException: '<' is …Run Code Online (Sandbox Code Playgroud) 在 razor 页面中处理 Blazor 时是否有一些特定的代码编写模式?我看到有关 Blazor 的所有示例都将 HTML/Razor/CSS 和 C# 代码放在同一个文件中,例如:
<div class="text">@sometext</div>
<style> .text{ color:black; } </style>
@code{
sometext = "text.."
}
Run Code Online (Sandbox Code Playgroud)
是否有某种模式可以像 MVC 一样将 C# 和 HTML 分开?我将@code{}页面的大部分逻辑移至单独的服务类。
我有兴趣听到不同的方法,最佳实践是什么?
c# ×4
blazor ×3
.net-core ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
ecmascript-6 ×1
ms-word ×1
office365 ×1
reactjs ×1
sqlite ×1
transactions ×1
unit-testing ×1
xamarin ×1