如何将C#DLL转换为可由VB6应用程序使用的COM互操作DLL?
在 Blazor 中,我有一个<a>
同时具有 ahref
和onclick
方法的元素:
<a href="" onclick="@(() => ChangePage(_someObject))">Test</a>
Run Code Online (Sandbox Code Playgroud)
onclick
调用这个方法:
private bool ChangePage(object objectToDisplay)
{
_currentObject = objectToDisplay;
StateHasChanged();
return false;
}
Run Code Online (Sandbox Code Playgroud)
通常在 JavaScript 中,从 event 方法返回 false 会停止后续导航到 中的链接,href
但这似乎不适用于我上面的代码。
单击链接后,如何阻止 Blazor 将页面更改为根 url?
(这里显而易见的答案是href
完全删除,但我正在使用引导 Pill 中的链接并删除 Pillhref
工作的停止)
<a>
元素更改为跨度并设置data-target
属性,但这会正确停止 Pills 渲染。return
到onclick
事件中(根据此答案):onclick="return @(() => ChangePage(_overviewModel))"
但这不会编译。return
在onclick
事件之后添加:onclick="@(() => ChangePage(_overviewModel)); …
我知道之前已经问过这个问题,看来这个功能在某些时候已经从VS中删除了.但我现在正在查看Microsoft 教程,并说VS 2017中应该有一个创建单元测试功能.
我正在尝试测试ASP.NET Core MVC控制器.我已经按照创建测试项目的步骤进行了操作.但是当我右键单击命名空间/类/方法时,我仍然看不到任何这样的选项.
编辑:我正在使用Visual Studio 2017社区版
我刚刚将 Blazor 项目从 Core 3 Preview 6 迁移到了 Preview 8,现在出现此错误:
无法从绑定属性“绑定值”推断出属性名称。绑定属性应采用“bind”或“bind-value”形式,以及相应的可选参数,如“bind-value:event”、“bind:format”等。
我已经隔离了导致这种情况发生的组件,并且代码似乎bind-value
按照错误消息中的说明进行了设置:
<TelerikDropdownList Data="@State.ContainerSizes"
ValueField=@nameof(ContainerSize.ContainerSizeId)
TextField=@nameof(ContainerSize.ContainerSizeName)
@bind-Value="@ContainerSizeIdNoNull"
>
</TelerikDropdownList>
Run Code Online (Sandbox Code Playgroud)
我试过删除@
from@bind-Value
和更改大写@bind-Value
等,但都无济于事。
什么可能导致这种情况?
我正在尝试在.NET Core 3 Preview 5 Web API项目中从Swashbuckle的4.0.1版本迁移到5.0.0-rc2。
我已经完成了项目的编译,并且Swagger UI正常运行,但是我无法使Bearer身份验证正常工作,这是由于我没有正确设置新格式的安全性。
这是我在版本4中使用的旧代码:
c.AddSecurityDefinition("Bearer", new ApiKeyScheme
{
Description = "JWT Authorization header using the Bearer scheme. \r\n\r\n Enter 'Bearer' [space] and then your token in the text input below.\r\n\r\nExample: \"Bearer 12345abcdef\"",
Name = "Authorization",
In = "header",
Type = "apiKey"
});
var security = new Dictionary<string, IEnumerable<string>>
{
{"Bearer", new string[] { }},
};
c.AddSecurityRequirement(security);
Run Code Online (Sandbox Code Playgroud)
这就是我将其更改为v5的内容:
c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Description = "JWT Authorization header using the Bearer scheme. \r\n\r\n Enter 'Bearer' [space] …
Run Code Online (Sandbox Code Playgroud) 我正在使用EF Core内存数据库,我正在尝试对使用事务的方法运行单元测试:
using (var transaction = await _context.Database.BeginTransactionAsync())
{
_context.Update(item);
result = await _context.SaveChangesAsync();
// some other stuff
transaction.Commit();
}
Run Code Online (Sandbox Code Playgroud)
但是,我从测试运行器中收到此错误:
System.InvalidOperationException:警告为"InMemoryEventId.TransactionIgnoredWarning"的错误异常:内存存储不支持事务.请参阅 http://go.microsoft.com/fwlink/?LinkId=800142要禁止此异常,请使用DbContextOptionsBuilder.ConfigureWarnings API.重写DbContext.OnConfiguring方法或在应用程序服务提供程序上使用AddDbContext时,可以使用ConfigureWarnings.
如何抑制该错误?
在以前的ASP.NET MVC版本中,您可以找到有关ViewModel的一些信息以及如何在此版本中使用它们.
我想知道为什么我在ASP.NET Core MVC中找不到关于这个主题的任何信息?这个概念是否仍然存在,如果需要,我需要把它们放在哪里?
问题出现了,因为我想为项目制作仪表板.项目是我的网络应用程序的主要入口点.他们有许多关系,例如里程碑.
楷模:
public class Project
{
public int ProjectId { get; set; }
public string Name { get; set; }
public ICollection<Milestone> Milestones { get; set; }
...
}
public class Milestone
{
public int MilestoneId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime Deadline { get; set; }
public int? ParentId { get; set; }
public Milestone Parent { get; set; } …
Run Code Online (Sandbox Code Playgroud) 我的VS2017副本中似乎缺少"创建单元测试"上下文菜单选项.
我知道有一点历史的它被删除,在VS2015然后重新添加后多哗然,但据我可以从告诉了VS2017微软的文档应该是有吧?
我正在处理的解决方案包含一个ASP.NET Web API 2应用程序,一个C#类库和几个测试项目,所有这些都是针对.NET Framework 4.5.1的.(我知道这个选项不应该出现在Microsoft Developer Community论坛上讨论的 .Net Core或.Net Standard项目).
我已经尝试右键单击代码窗口中的类名和方法名,类名称选项卡和解决方案资源管理器中的类文件都无济于事.
编辑:我的VS副本中已经安装了"测试工具核心功能":
编辑2:我可以确认现在修复了VS的最新版本.
运行服务器端Blazor应用程序时,我在控制台中收到此消息:
错误:当前电路中存在未处理的异常,因此该电路将被终止。有关更多详细信息,请在“ CircuitOptions.DetailedErrors”中打开详细的异常
我看过Blazor错误处理文档,但无法弄清楚如何真正打开该消息中提到的详细错误?
我有下面的代码,但是当我单击该<tr>
元素时传递的索引参数始终为 9。
这是因为表中有 9 行作为数据传递给组件。所以看起来索引总是最后设置的变量“i”的值...在这种情况下,foreach循环中最后一行之后的i的值是9,所以我在单击所有按钮时得到索引参数为9表中的行...
我的代码中的问题是什么,没有i
为每行 onclick 设置值。
<table border="1">
@for(int i=0;i< ListData.DataView.Table.Rows.Count; i++)
{
<tr @onclick="(() => RowSelect(i))">
@foreach (ModelColumn col in ListData.ListColumns)
{
<td>@ListData.DataView.Table.Rows[i][col.Name]</td>
}
</tr>
}
</table>
Run Code Online (Sandbox Code Playgroud)
@code {
private async Task RowSelect(int rowIndex)
{
await ListRowSelected.InvokeAsync(rowIndex);
}
}
Run Code Online (Sandbox Code Playgroud) c# ×9
asp.net-core ×3
blazor ×3
.net ×1
.net-core ×1
com ×1
com-interop ×1
interop ×1
razor-pages ×1
swagger-ui ×1
swashbuckle ×1
unit-testing ×1