ASP.NET MVC не называет global.asax' EndRequest

Я бы переместил кнопку отправки в дочернем компоненте 3 в родительский компонент, после чего вы можете использовать @ViewChild(), чтобы получить ссылку на дочерние компоненты и формы в компоненте, которые позволят вам проверить их действительность. [ 115]

import { Component, OnInit, ViewChild } from '@angular/core';

@Component({
  selector: 'ct-parent',
  templateUrl: './parent.component.html']
})
export class ParentComponent implements OnInit  {

    @ViewChild(Child1Component) child1Component: Child1Component; 
    @ViewChild(Child2Component) child2Component: Child2Component;
    @ViewChild(Child3Component) child3Component: Child3Component;

    constructor() {}

    ngOnInit() {}  

    submitlClicked() {
        //check if form is valid, else throw error
        if (this.child1Component.myFormGroup.valid 
            && this.child2Component.myFormGroup.valid 
            && this.child3Component.myFormGroup.valid) {
            // do something
        } else {
            // throw error
        }
    }
}

Вам необходимо изменить код и использовать Reactive Forms ( https://angular.io/guide/reactive-forms ):

-- Child 1 --

import { Component, OnInit } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; @Component({ selector: 'ct-child1', templateUrl: './child1.component.html'] }) export class Child1Component implements OnInit { myFormGroup: FormGroup; constructor(private fb: FormBuilder) { myFormGroup = this.fb.group({ name: ['', Validators.required] }); } ngOnInit() {} }

14
задан Paulo Santos 30 January 2011 в 22:57
поделиться

3 ответа

Лучше всего сделать это в HttpModule. Я использую HttpModule для управления сеансом NHibernate в приложении MVC, и он отлично работает. В начальном запросе я связываю sessionFactory с ManagedWebSessionContext (в NHibernate, но довольно недокументированным), а затем в конечном запросе я фиксирую любые транзакции и отменяю привязку sessionFactory.

Я думаю, что было бы лучше разделить это и на HttpModule.

5
ответ дан 1 December 2019 в 07:07
поделиться

Я обычно делаю:

protected void Application_EndRequest(object sender, EventArgs e)
{
}

Это работает, как и ожидалось. Не знаю о событии, хотя.

18
ответ дан 1 December 2019 в 07:07
поделиться

Экземпляр HttpApplication, который представлен вашим файлом global.asax, является единственным экземпляром, который представляет только первый объект HttpApplication . Не гарантируется, что этот экземпляр HttpApplication будет использоваться для любого другого запроса.

Вам нужно переопределить метод Init() в global.asax и в методе , который подключает любые события, которые вы захотите:

public override void Init() {
    base.Init();

    EndRequest += MyEventHandler;
}

Пожалуйста, обратитесь к этой статье MSDN для получения более подробной информации об объекте HttpApplication.

.
16
ответ дан 1 December 2019 в 07:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: