小编Ven*_*son的帖子

更改Kendo UI上传小部件的文本

我想将默认文本更改为Select更适合上下文的内容.我正在使用基于HtmlHelper该类构建的Kendo Fluent API,但我没有找到在基本功能和本地化中都不更改文本的方法.

我的代码很简单,看起来像这样:

@(Html.Kendo().Upload()
      .Name("FilesToUpload")
)
Run Code Online (Sandbox Code Playgroud)

在这个帖子中有一个关于改变文本的jQuery函数的建议,如果我使用上传小部件的javascript API但是当我通过创建小部件时不起作用,它可以很好地工作Html.Kendo().Upload.

使用javascript API更好的是:

localization: {
    select: 'any text'
}
Run Code Online (Sandbox Code Playgroud)

您可以使用的设置,但这对我也没有帮助.

如果有人在遇到这个问题并解决之前我会非常感谢他的帮助.

c# asp.net-mvc kendo-ui

10
推荐指数
1
解决办法
8056
查看次数

从Nullable类型获取反射中的PropertyType.Name

我想使用反射获取属性类型.这是我的代码

var properties = type.GetProperties();
foreach (var propertyInfo in properties)
{
     model.ModelProperties.Add(
                               new KeyValuePair<Type, string>
                                               (propertyInfo.PropertyType.Name,
                                                propertyInfo.Name)
                              );
}
Run Code Online (Sandbox Code Playgroud)

这段代码没问题propertyInfo.PropertyType.Name,但如果我的属性类型是Nullable我得到这个Nullable'1字符串,FullName如果得到这个搅拌System.Nullable1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]

c# reflection nullable

10
推荐指数
2
解决办法
1万
查看次数

如何对使用缓存的服务进行单元测试?

我有一个服务层,其中包含多种方法。这些方法已实现缓存,如下所示:

string key = "GetCategories";
if (CacheHandler.IsCachingEnabled() && !CacheHandler.ContainsKey(key))
{
    var categories = RequestHelper.MakeRequest("get_category_index")["categories"];
    var converted = categories.ToObject<List<Category>>();
    CacheHandler.InsertToCache(key,converted);
    return converted;
}
return CacheHandler.GetCache(key) as List<Category>;
Run Code Online (Sandbox Code Playgroud)

现在,问题是我也想进行单元测试,如下所示:

[TestMethod]
public void GetCategories()
{
    IContentService contentService = new ContentService();
    var resp = contentService.GetCategories();
    Assert.IsNotNull(resp,"Should not be null");
}
Run Code Online (Sandbox Code Playgroud)

问题是,在单元测试期间,HttpContext.Current内部my CacheHandler为空(显然)。

解决此问题的最简单方法是什么?

(请尽可能具体,因为我之前没有做过很多单元测试)

c# asp.net-mvc caching unit-testing

5
推荐指数
1
解决办法
7501
查看次数

Blazor WebAssembly 阻止 WebApi AllowAnonymous

我创建了一个 Blazor WebAssembly 项目,并希望提供一个具有一个公共可用函数的 WebAPI。

[Route("api/[controller]")]
[ApiController]
[Authorize]
public class SystemEvalApiController : ControllerBase
{
    public SystemEvalApiController(AppDbContext context, IMapper mapper)
    {...}

    [Route("LatestEvals")]
    [AllowAnonymous]
    public ActionResult LatestEvals()
Run Code Online (Sandbox Code Playgroud)

这是我的 Api 控制器,我应该能够通过以下方式调用它:

SystemEvalPublicViewModel = await Http
                .GetFromJsonAsync<SystemEvalPublicViewModel>(
                    HttpService.BuildUrl("api/SystemEvalApi/LatestEvals"));
Run Code Online (Sandbox Code Playgroud)

当我没有登录任何帐户时。但我得到了这个错误:

info: System.Net.Http.HttpClient.JPB.BorannRemapping.ServerAPI.LogicalHandler[100]
      Start processing HTTP request GET https://localhost:44330/api/SystemEvalApi/LatestEvals
blazor.webassembly.js:1 info: Microsoft.AspNetCore.Authorization.DefaultAuthorizationService[2]
      Authorization failed.
Run Code Online (Sandbox Code Playgroud)

看起来“DefaultAuthorizationService”无法识别匿名属性,但我找不到它直接失败的点。

如何声明无需登录即可从 HttpClient 访问 WebAPI 函数。Microsoft.AspNetCore.Components.WebAssembly.Server 3.2.0.-rc1.20223.4

编辑:这是 ClientServices 的声明:

var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");

builder.Services.AddHttpClient("JPB.BorannRemapping.ServerAPI", client =>
    {
        client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress);
    })
    .AddHttpMessageHandler<BaseAddressAuthorizationMessageHandler>();

// Supply HttpClient instances that include access …
Run Code Online (Sandbox Code Playgroud)

c# webassembly asp.net-core blazor

3
推荐指数
1
解决办法
1897
查看次数

在 GraphQL HotChocolate 上过滤 EF Core 导航属性

我正在将 HotChocolate (11.2.2) 与 EF Core 一起使用,并且想要过滤子属性。根据 GraphQL 文档,这应该可以通过在导航属性上使用过滤器关键字来实现,但 HotChocolate 失败了。

我的架构:

type A {
    Name: string,
    RefTo: [B]
}
type B {
    TypeName: string,
    Value: int
}
Run Code Online (Sandbox Code Playgroud)

这是由 EF 支持的,我IQueryable<A>向 HotChocolate 提供了一个。

[UsePaging]
[UseProjection]
[UseFiltering]
[UseSorting]
public IQueryable<A> GetAs([Service] Context db) => db.As.AsSingleQuery().AsNoTrackingWithIdentityResolution();
Run Code Online (Sandbox Code Playgroud)

现在我只想包含那些等于的Bs ,如下所示:TypeName"ExampleType"

query {
   As {
      Name,
      RefTo(where: { TypeName: { eq: "ExampleType" } })
      {
          TypeName,
          Value
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

但 HotChcolate 似乎并不明白这一点,并说道:

Unknown argument "where" on field "A.RefTo".validation …

c# entity-framework-core graphql hotchocolate

1
推荐指数
1
解决办法
989
查看次数

我怎样才能传递有时为空的args?

在此事件处理程序中:

        public static void geolocator_PositionChanged(Geolocator sender, PositionChangedEventArgs args)
        {
            DateTimeOffset timeStampUTC = args.Position.Coordinate.Timestamp.ToUniversalTime();
            DateTimeOffset timeStampLocal = timeStampUTC.LocalDateTime;
            DateTimeOffset dateTimeStampUTC = timeStampUTC.DateTime;
            RecordLocation(args.Position.Coordinate.Latitude, args.Position.Coordinate.Longitude,    
            args.Position.CivicAddress.City, args.Position.CivicAddress.State, dateTimeStampUTC, timeStampLocal);
        }
Run Code Online (Sandbox Code Playgroud)

...我得到了一个Null Reference Exception因为args.Position.CivicAddressnull(其余的args传递给RecordLocation()有效).我估计有时会有位置null,有时它不会.如果没有城市或国家被发现的时间,我能做些什么呢?我试图使这些字符串RecordLocation()的定义可以为空,但这不会编译.

我是否需要检查CivicAddress是否为null并创建我的RecordLocation()方法的重载版本,还是有另一种方法来处理它?

c# geolocation coordinates nullreferenceexception windows-phone-8

0
推荐指数
1
解决办法
238
查看次数

如何在按钮单击事件中调用load事件

如何在按钮点击事件中调用加载事件我通过调用尝试 Event Handler

this.load += EventHandler(this.Form_Load)//This event called from button click event
Run Code Online (Sandbox Code Playgroud)

但它不会调用Form_Load事件.有人可以帮忙吗?

c# winforms

0
推荐指数
1
解决办法
2万
查看次数