小编Jes*_*sen的帖子

如何在asp.net核心mvc项目中解决"未查找视图"异常

我正在尝试使用VS Code创建在OSX上运行的ASP.NET Core MVC测试应用程序.我在访问默认的Home/index(或我尝试过的任何其他视图)时遇到"查找未找到"异常.

这是启动配置

    public void Configure(IApplicationBuilder app) {

        // use for development
        app.UseDeveloperExceptionPage();
        app.UseDefaultFiles();
        app.UseStaticFiles();

        app.UseMvc( routes => {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}"
            );
        });
    }
Run Code Online (Sandbox Code Playgroud)

我已经定义了视图Views/Home/index.cshtml,并且我在project.json中包含了以下包

"dependencies": {
"Microsoft.NETCore.App": {
  "version": "1.0.0-rc2-3002702",
  "type": "platform"
},
"Microsoft.AspNetCore.Razor.Tools" : "1.0.0-preview1-final",
"Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
"Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Routing": "1.0.0-rc2-final"
},
Run Code Online (Sandbox Code Playgroud)

最后,这是我得到的例外.

System.InvalidOperationException: The view 'Index' was not found. The following locations were searched:
    /Views/Home/Index.cshtml
    /Views/Shared/Index.cshtml
    at Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.EnsureSuccessful(IEnumerable`1 originalLocations)
    at Microsoft.AspNetCore.Mvc.ViewResult.<ExecuteResultAsync>d__26.MoveNext()
    --- End of …
Run Code Online (Sandbox Code Playgroud)

asp.net-core

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

如何使用特定的keyCode创建KeyboardEvent

我正在尝试在单元测试中模拟keydown事件(angular2/TypeScript).我并不总是有可用的DebugElement,所以我试图在本机元素上发出事件.我遇到的问题是如何在创建KeyboardEvent时定义keyCode.keyCode未定义为KeyboardEventInit定义的一部分,而在KeyboardEvent本身上,它仅作为只读属性公开.

只需添加一个keyCode属性(并将obj类型设置为)也不起作用.

    let elm = <HTMLElement>content.nativeElement;
    let ev = new KeyboardEvent('keydown', {
        code: '123',
        //keyCode: 345,
        key: 'a',
    });
    elm.dispatchEvent(ev);
Run Code Online (Sandbox Code Playgroud)

有什么建议 ?

编辑:根据mdn链接,不推荐使用keyCode,不应使用,而应使用"code". https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode

javascript angular

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

Angular 2.0,如何检测子组件的路由更改

如何检测子组件的路由更改?这是我尝试过的,但我只看到app组件跟踪路由更改.我希望能够检测到url在MetaDetailView组件中从#/ meta/a/b/c变为#/ meta/a/b/c/d的时间.

@RouteConfig([
    { path: '/', name: 'Home', redirectTo: ['Meta']},
    { path: '/meta/...', name: 'Meta', component: MetaMainComponent, useAsDefault: true},
    ...other routes...,
  ])    
export class AppComponent {
    constructor(private _router: Router) {
        _router.subscribe( (url) => console.log("app.url = " + url));
    }
}

@RouteConfig([
    { path: '/*other', name: 'Detail', component: MetaDetailViewComponent, useAsDefault: true},
])
export class MetaMainComponent {
    constructor(private _router: Router) {
        _router.subscribe( (url) => console.log("metamain.url = " + url));
        console.log("MetaMainComponent")
    }
}

export class MetaDetailViewComponent {
    constructor(private _router: Router) {
        _router.subscribe( …
Run Code Online (Sandbox Code Playgroud)

angular2-routing angular

8
推荐指数
2
解决办法
8578
查看次数

角2。如何使用动态创建的 html 对组件进行单元测试

我创建了一个虚拟列表组件,我只在其中渲染可见线。创建单元测试时,我可以在添加元素的同时测试视图,但是当我删除或更改元素时,“fixture.debugElement”仍会返回先前的计数。

我创建了这个显示问题的小测试组件

组件

class TestComponent {
    @ViewChild('view') view: ElementRef;
    constructor(public ngRenderer: Renderer) {
    }
    public add(text: string): void {
        let parentelm = this.view.nativeElement;
        let element = this.ngRenderer.createElement(parentelm, 'div');
        this.ngRenderer.setText(element, text);
    }
    public remove(index: number): void {
        let elm: HTMLElement = this.view.nativeElement;
        let child = elm.children[index];
        elm.removeChild(child);
    }
}
Run Code Online (Sandbox Code Playgroud)

和测试

describe('test component', () => {
    let fixture: ComponentFixture<TestComponent>;
    let component: TestComponent;

    beforeEach(() => {
        TestBed.configureTestingModule({
            declarations: [TestComponent],
        });
        fixture = TestBed.createComponent(TestComponent);
        component = fixture.componentInstance;
    });
    it('add and remove divs', () => …
Run Code Online (Sandbox Code Playgroud)

unit-testing angular

5
推荐指数
0
解决办法
5180
查看次数

SwiftUI iOS - 如何捕获硬件按键事件

我是 iOS 开发的新手。按照教程,我使用 SwiftUI 创建了一个简单的计算器。

我的 iPad 上有一个键盘,我希望能够使用键盘输入值。

如何在 SwiftUI 应用程序(没有文本字段)中捕获和处理硬件键盘事件?我尝试在 SceneDelegate (UIResponder) 上使用 keyCommands,如下所示,但这对我不起作用。只要我按下 iPad 上的任意键,我就会在 XCode 跟踪视图中看到“与守护进程的连接已失效”。

 class SceneDelegate: UIResponder, UIWindowSceneDelegate {
    var window: UIWindow?

    override var canBecomeFirstResponder: Bool {
        return true;
    }
    override var keyCommands: [UIKeyCommand]? {
        return [
            UIKeyCommand(input: "a", modifierFlags: [], action: #selector(test)),
            UIKeyCommand(input: UIKeyCommand.inputLeftArrow, modifierFlags: [], action: #selector(test))
        ]
    }

    @objc func test(_ sender: UIKeyCommand) {
        print("test was pressed")
    }
Run Code Online (Sandbox Code Playgroud)

谢谢

uikeycommand swiftui

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

SwiftUI - 更改光标

编辑:正如@Asperi 提到的,这是正确的。我需要使用视图/控件,而不是形状

当我将鼠标悬停在元素上时,我试图将光标更改为指针。我看了这个,但它对我不起作用 SwiftUI System Cursor

这是我的代码

struct CursorTestView: View {
    @State private var hover: Bool = false
    
    var body: some View {
        ZStack {
            RoundedRectangle(cornerRadius: 5)
                .fill(hover ? Color.green : Color.blue)
                .frame(width: 100, height: 50)
                .onHover(perform: { hovering in
                    self.hover = hovering
                    if (hover) {
                        NSCursor.pointingHand.push()
                    } else {
                        NSCursor.pop()
                    }
                })
        }
        .frame(width: 400, height: 400, alignment: .center)
        .background(Color.yellow.opacity(0.2))
    }
}
Run Code Online (Sandbox Code Playgroud)

对我所缺少的有什么建议吗?

谢谢

macos swiftui

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

如何在 monoMac 中处理 NSTextField keyDown

我正在尝试使用 monoMac 和 Xamarin Studio 处理 NSTextField 的 keyDown 事件。

我创建了一个 NSTextFieldDelegate 派生类,并将编辑器委托设置为此类的一个实例。但是,我只看到调用了 Changed 方法,而不是 DoCommandBySelector

class TextPathDelegate : NSTextFieldDelegate {
public override void Changed(NSNotification notification)
{
    Console.WriteLine("changed");
}
public override void DidChangeValue(string forKey)
{
    Console.WriteLine("didchange = {0}", forKey);
}
public override void WillChangeValue(string forKey)
{
    Console.WriteLine("willchange = {0}", forKey);
}

public override bool DoCommandBySelector(NSControl control, NSTextView textView, MonoMac.ObjCRuntime.Selector commandSelector)
{
    Console.WriteLine("DoCommandBySelector = {0}", commandSelector.ToString());
    return false;
}
}
Run Code Online (Sandbox Code Playgroud)

知道我可能会错过什么吗?

编辑 2: 我刚刚注意到,如果我使用箭头键和向上/向下翻页,则会调用 DoCommandBySelector。仍然无法捕捉到 keydown 事件

Edit-1: 我尝试使用 Xamarin.mac 制作一个小项目,只有 …

cocoa monomac xamarin

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