当从控制器调用方法到另一个控制器时,会话变为空
Q_COKE_AP_CHECKS_SIGN_STATUS_V
cols (plan_id,COKE_SIGNATURE__A , COKE_SIGNATURE__B, COKE_AUDIT, COKE_CHQ_NUMBER, COKE_PAY_SUPPLIER)
SELECT DISTINCT
COKE_CHQ_NUMBER,
COKE_PAY_SUPPLIER
FROM
apps.Q_COKE_AP_CHECKS_SIGN_STATUS_V
WHERE
plan_id = 40192
AND COKE_SIGNATURE__A = 'YES'
AND COKE_SIGNATURE__B = 'YES'
AND COKE_AUDIT = 'YES'
MINUS
SELECT DISTINCT
COKE_CHQ_NUMBER,
COKE_PAY_SUPPLIER
FROM apps.Q_COKE_AP_CHECKS_SIGN_STATUS_V
INNER JOIN (
SELECT COKE_CHQ_NUMBER_DELIVER
FROM apps.Q_COKE_AP_CHECKS_DELIVERY_ST_V
) T ON T.COKE_CHQ_NUMBER_DELIVER = apps.Q_COKE_AP_CHECKS_SIGN_STATUS_V
WHERE
plan_id = 40192
AND COKE_SIGNATURE__A = 'YES'
AND COKE_SIGNATURE__B = 'YES'
AND COKE_AUDIT = 'YES'
上一行显示空错误
答案 0 :(得分:0)
该会话由aspnet的请求管道填充。 由于您是手动调用控制器,因此始终应避免这种情况,因为控制器是处理请求的,而不是要手动调用的,因为这会破坏整个请求管道。
由于会话是在请求管道上的某个位置设置的,并且您是手动调用控制器的,因此这些变量在该控制器内部将不可用,但是它们将在您从中调用它的控制器上,因为这是其中的一部分请求管道。也许您可以从中访问它并将其作为参数传递。
最好的选择是使用一项服务来执行付款或支付操作中的所有内容,并在两个控制器中使用该服务。