小编Snæ*_*ørn的帖子

从OData $ metadata生成TypeScript接口

我正在研究OData和TypeScript,在了解OData客户端代码生成器时可以为获得OData端点的TypeScript接口做类似的事情而感到震惊。重构时真的有帮助:)

所以想知道是否有人对此事有经验。喜欢他们使用什么工具。(如果存在)他们遇到的问题。

code-generation odata typescript

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

PageSize和MaxTop之间的区别

[EnableQuery(PageSize=20)]和之间有什么区别[EnableQuery(MaxTop=20)]

据我所知,他们两个都为结果设置了最大限制。

调用GET odata/Products?$top=100它们两个都只给我20个结果。

c# odata asp.net-web-api-odata odata-v4

5
推荐指数
2
解决办法
2879
查看次数

Label不在循环中工作(for/foreach/template)

我正在尝试列出复选框,但Html.LabelFor无效.它不断生成<label for="">Some text</label>,请注意空For属性.

在尝试使用显示模板之前,我尝试过for和foreach循环,但它们都有这个问题.我拒绝相信手动编写输入字段是唯一的解决方案.所有的帮助/提示非常感谢.

该模型:

public class MyViewModel
{
    public string Name { get; set; }
    public bool Selected { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

控制者:

public ActionResult MyController()
{
    var model = new List<MyViewModel>();

    model.Add(new MyViewModel() { Name= "Foo" });
    model.Add(new MyViewModel() { Name= "Bar" });

    return View(model);
}
Run Code Online (Sandbox Code Playgroud)

风景:

@model IEnumerable<MyViewModel>
<div>
    @Html.DisplayFor(x => Model)
</div>
Run Code Online (Sandbox Code Playgroud)

显示模板:

@model MyViewModel
<p>
    @Html.LabelFor(model => model.Selected, Model.Name)
    @Html.EditorFor(model => model.Selected)
</p>
Run Code Online (Sandbox Code Playgroud)

结果:

<div>    
    <p>
        <label for="">Foo</label>
        <input class="check-box" …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-3

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

加载数据时在mat表中隐藏行

我正在尝试在加载MatTable时隐藏其行。

我无法做到这一点:(有关完整代码,请参见StackBlitz

<div *ngIf="!isLoading">
  <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</div>
Run Code Online (Sandbox Code Playgroud)

因为MatTable会引发各种错误:(

我不能放进去*ngIf="!isLoading"MatRow因为它已经有了结构指令。

我想避免CSS欺骗。

我没看到什么?请赐教。

angular-material angular

4
推荐指数
2
解决办法
4930
查看次数

GetInvalidFileNameChars() 不包含所有非法字符

根据http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars%28v=vs.110%29.aspx Path.GetInvalidFileNameChars()应该给出以下输出

// Note: Some characters may not be displayable on the console. 
// The output will look something like: 
// 
// The following characters are invalid in a path: 
// Char    Hex Value 
// ",      0022 
// <,      003C 
// >,      003E 
// |,      007C 
// ... 
// 
// The following characters are invalid in a filename: 
// Char    Hex Value 
// ",      0022 
// <,      003C 
// >,      003E 
// |,      007C 
// ...
Run Code Online (Sandbox Code Playgroud)

然而我只是得到

Char …
Run Code Online (Sandbox Code Playgroud)

c#

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

类具有静态成员`name`时的TypeError

我有以下TypeScript类

module Test {
    "use strict";

    class Foo {
        public static name = "foo";
    }
}
Run Code Online (Sandbox Code Playgroud)

很简单.

但是在Chrome中运行时出现以下错误:

未捕获的TypeError:无法分配给函数'function Foo(){}'的只读属性'name'

这是生成的javascript:

var Test;
(function (Test) {
  "use strict";
  var Foo = (function () {
    function Foo() {
    }
    Foo.name = "foo";
    return Foo;
  }());
})(Test || (Test = {}));
Run Code Online (Sandbox Code Playgroud)

如果我使用不同的名称,那么name我不会收到错误.

module Test {
    "use strict";

    class Foo {
        public static huh = "foo";
    }
}
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?

javascript typescript

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

在typescript中导入html模板

我正在尝试使用import我的html模板,以便webpack能够识别它们并在构建时包含它们.(webpack -d)

根据这个GitHub问题,我应该这样做

declare module '*.html' {
    const _: string;
    export default _;
}
Run Code Online (Sandbox Code Playgroud)

然后import template from './myTemplate.html';应该工作.

但它并没有完全解决问题.

import template from './myTemplate.html';
console.log(template); // undefined
Run Code Online (Sandbox Code Playgroud)

然而,这"工作"

import * as template from './myTemplate.html';
console.log(template); // <p>Hello world!</p>
Run Code Online (Sandbox Code Playgroud)

很奇怪.

但现在这不起作用

$routeProvider.when("/test", {
    template: template, // ERROR! template is typeof(*.html) expected string
    controller: MyController,
    controllerAs: "$ctrl"
});
Run Code Online (Sandbox Code Playgroud)

但是,如果我将*.html模块更改为

declare module '*.html' {
    const _: string;
    export = _; // changed this
}
Run Code Online (Sandbox Code Playgroud)

我现在可以做 …

angularjs typescript angular-routing webpack-3 typescript-2.5

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

以编程方式将 Razor 页面呈现为 HTML 字符串

目标

  • 我正在尝试在后端生成一个 HTML 字符串,因为我想使用 HtmlToPDF 库将其转换为 PDF。
  • 我还希望能够在浏览器中轻松查看生成的 HTML,以便进行调试/调整。该页面仅在IsDevelopment().
  • 我希望它尽可能简单。

我正在使用 ASP.NET Core 3.1

方法

剃刀页

我想我会尝试新的Razor Pages,因为它们被宣传为非常简单。

@page
@using MyProject.Pages.Pdf
@model IndexModel

<h2>Test</h2>
<p>
    @Model.Message
</p>
Run Code Online (Sandbox Code Playgroud)
namespace MyProject.Pages.Pdf
{
    public class IndexModel : PageModel
    {
        private readonly MyDbContext _context;

        public IndexModel(MyDbContext context)
        {
            _context = context;
        }

        public string Message { get; private set; } = "PageModel in C#";

        public async Task<IActionResult> OnGetAsync()
        {
            var count = await _context.Foos.CountAsync();

            Message += $" Server time is …
Run Code Online (Sandbox Code Playgroud)

c# razorengine asp.net-core razor-pages asp.net-core-3.1

3
推荐指数
2
解决办法
1688
查看次数

来自ngrx/entity的SelectAll不会选择任何内容

介绍

我在让我的选择器工作时遇到了一些麻烦.FakeApiService虽然我可以看到通话,但我的组件没有更新书籍.因此,行动和效果是有效的.

我相信这个问题与我的使用有关@ngrx/Entity.特别是这个

export const getBooksState = createFeatureSelector<DemoState>('demo');
Run Code Online (Sandbox Code Playgroud)

export const { selectAll } = fromBook.adapter.getSelectors();
Run Code Online (Sandbox Code Playgroud)

我已经看过他们提供选择器功能的教程,getSelectors()但这不是必需的.

我希望有人可以发现我哪里出错了,如果有人对结构/设置有一些建议我都是耳朵:)

这是我的设置.

版本

  • Angular:6.0.0
  • rxjs 6.1.0
  • 打字稿2.7.2
  • webpack 4.6.0
  • @ ngrx/effects 5.2.0
  • @ ngrx/entity 5.2.0
  • @ ngrx/router-store 5.2.0
  • @ ngrx/schematics 5.2.0
  • @ ngrx/store 5.2.0
  • @ ngrx/store-devtools 5.2.0

NGRX

功能/存储/动作/ book.actions.ts

import { Action } from '@ngrx/store';
import { Book } from '../../models/book';

export enum BookActionTypes {
  Load = '[Book] Load',
  LoadSuccess = '[Book] Load Success',
  LoadFail = …
Run Code Online (Sandbox Code Playgroud)

typescript ngrx angular ngrx-entity

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

WebGrid()中的MVC 3 DropDownList()问题

我试图在DropDownList里面放一个,WebGrid但我无法弄清楚该怎么做:(

我试过的事情:

grid.Column("Id", "Value", format: ((item) =>
   Html.DropDownListFor(item.SelectedValue, item.Colors)))
Run Code Online (Sandbox Code Playgroud)

grid.Column(header: "", format: (item => Html.DropDownList("Colors", item.Colors)))
Run Code Online (Sandbox Code Playgroud)

grid.Column(header: "", format: Html.DropDownList("Colors"))
Run Code Online (Sandbox Code Playgroud)

和其他各种各样,但我无法让它工作.任何帮助深表感谢.

模型

public class PersonViewModel
{
    public string Name { get; set; }
    public int Age { get; set; }
    public SelectList Colors { get; set; }
    public int SelectedValue { get; set; }
}
public class ColorViewModel
{
    public int ColorID { get; set; }
    public string ColorName { get; set; }
} …
Run Code Online (Sandbox Code Playgroud)

webgrid asp.net-mvc-3 drop-down-menu

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

配置非框架特定的映射行为

我正在尝试配置我的Object Mapper而不知道我正在使用哪个mapper.:/

这可能听起来有点奇怪.这样做的原因是我正在尝试使用洋葱架构,因此我的UI无法了解我的基础架构中的Object Mapper.请参阅此解决方案以获取示例.

洋葱建筑

我在弄清楚如何"委托"无默认映射行为时遇到了一些麻烦.像:

Mapper
    .CreateMap<MyModel, MyDestViewModel>()
    .ForMember(
        dest => dest.SomeDestinationProperty,
        opt => opt.MapFrom(src => src.SomeSourceProperty)
    );
Run Code Online (Sandbox Code Playgroud)

我在我的MVC项目中设置了一个从Global.asax调用的类,这是我想要配置映射的地方.

public static class MapConfig
{
    public static void RegisterMaps()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

我以为我可以做以下事情.(IMapper是位于Domain中的自定义接口)

public static void RegisterMaps(HttpConfiguration config)
{
    var mapper = config.DependencyResolver.GetService(IMapper);
    mapper.CreateMap<MyModel, MyViewModel>();
}
Run Code Online (Sandbox Code Playgroud)

现在......我将如何设置像.ForMember这样的特殊行为?请记住,它不能是AutoMapper特定的.

我正在思考这些方面的事情,mapper.CreateMap<MyModel, MyViewModel>(Expression<Func<T>>)其中Func会做一些我现在无法弄清楚的黑魔法:( - 我是在正确的道路上还是我错过了一些必要的东西?

dependency-injection automapper onion-architecture

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

将对象作为测试参数

我试图编写一个测试,检查派生类中的方法是否未被错误覆盖.所以我尝试了以下内容.但无论我尝试什么,它似乎都不允许我"注入"我的对象.

[Theory]
[xxxData(new BaseClass())]
[xxxData(new DerivedClass())]
public void Test_Stuff(BaseClass obj)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

xunit xunit.net

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

在$ scope上设置ng-options的选定值

我想得到/设置范围下拉列表的选定索引+偏移量.

因此,当我选择名为"Third"的选项时,该$scope.selectedIndex值应为3.但它是obj3.

这是我到目前为止所提出的.我希望track by能解决它,但它没有:(

调节器

$scope.foos = [obj1, obj2, obj3]
Run Code Online (Sandbox Code Playgroud)

视图

<select data-ng-model="selectedIndex"
        data-ng-options="foo.name for foo in foos track by foos.indexOf(foo) + 1">
    <option value=""></option>
</select>
Run Code Online (Sandbox Code Playgroud)

生成的视图(生成的值与预期一致)

<select data-ng-model="selectedIndex" data-ng-options="foo.name for foo in foos track by foos.indexOf(foo) + 1">
    <option value="" class=""></option>
    <option value="1" label="First">First</option>
    <option value="2" label="Second">Second</option>
    <option value="3" label="Third">Third</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我不能使用数组技巧

ng-options="idx as choice for (idx, choice) in choices"
Run Code Online (Sandbox Code Playgroud)

因为idx需要被抵消 +1

Plnkr

angularjs ng-options

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