Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 检索要添加到返回参数的实体值_Asp.net_Backend - Fatal编程技术网

Asp.net 检索要添加到返回参数的实体值

Asp.net 检索要添加到返回参数的实体值,asp.net,backend,Asp.net,Backend,我有这个方法: private List < ReportParameter > ParametrosReporte() { List < ReportParameter > Parametros = new List < ReportParameter > (); try { int ? int_Ejercicio = this.radcmbEjercicio.SelectedItem == null ? 0 : t

我有这个方法:

 private List < ReportParameter > ParametrosReporte() {
      List < ReportParameter > Parametros = new List < ReportParameter > ();
      try {
        int ? int_Ejercicio = this.radcmbEjercicio.SelectedItem == null ? 0 : this.radcmbEjercicio.SelectedValue.ToInt();
        int ? int_Periodo = this.radcmbPeriodo.SelectedItem == null ? 0 : this.radcmbPeriodo.SelectedValue.ToInt();
        int ? int_BSC = this.radcmbBSC.SelectedItem == null ? 0 : this.radcmbBSC.SelectedValue.ToInt();

        Parametros.Add(Reportes.ParametrosReporte("pe_Ejercicio", int_Ejercicio.ToString()));
        Parametros.Add(Reportes.ParametrosReporte("pe_Mes", int_Periodo.ToString()));
        Parametros.Add(Reportes.ParametrosReporte("pe_BSC", int_BSC.ToString()));


        catBSC _catBSC = new catBSC() {
          mdUsuarioCaptura = new Entidades.Usuario() {
            UsuarioID = ((Usuario) Session["User"]).UsuarioID,
          }
        };
        Parametros.Add(Reportes.ParametrosReporte("pe_Usuario", UsuarioID ));

        return Parametros;
      } catch (Exception ex) {
        throw new System.ArgumentException("Error en ParametrosReporte", ex);
      }
    }
但在检索之前,我想将其调用到Parameteros中。添加如下内容:

Parametros.Add(Reportes.ParametrosReporte("pe_Usuario", UsuarioID ));
但我不能,因为UsuarioID超出了范围,它把我甩了

当前上下文中不存在USUARIID


如何调用它并将其附加到我的
参数。添加

您只需在创建的
catBSC
上方创建一个局部变量,然后在两个位置使用该变量:

var usuarioID = ((Usuario) Session["User"]).UsuarioID

catBSC _catBSC = new catBSC() {
    mdUsuarioCaptura = new Entidades.Usuario() {
        UsuarioID = usuarioID
    }
};

Parametros.Add(Reportes.ParametrosReporte("pe_Usuario", usuarioID));

您可以将
var
替换为实际类型,但我不想对您的场景中的情况进行假设。

您可以在新CatBSC作用域之外创建一个局部变量,并在该作用域中为其分配USUARIID。我尝试了它,但它不起作用,对不起,我忘了注释它,或者你能展示一下你的方法吗?有可能我做的表单不正确@anthonyvoelkers你有没有试着在你声明新列表的位置附近声明变量?我认为使这一点复杂化的事情之一是对象初始化的使用它应该可以工作,但我发现了更简单的解决方案,如:
var-usuarioID=new-Usuario(){usuarioID=((Usuario)Session[“User”]).usuarioID}那是不一样的。在这种情况下,
usuarioID
将是
Usuario
的一个实例,而不是
usuarioID
是什么。为了得到相同的结果,不同之处在于我需要像这样检索值:
Parametros.Add(Reportes.parametrosreport(“pe_Usuario”,usuarioID.usuarioID.ToString())
是,这就是我所说的区别。在这种情况下,最好将
usuarioID
命名为
usuario
,因为它就是这样。我希望这是有道理的。
var usuarioID = ((Usuario) Session["User"]).UsuarioID

catBSC _catBSC = new catBSC() {
    mdUsuarioCaptura = new Entidades.Usuario() {
        UsuarioID = usuarioID
    }
};

Parametros.Add(Reportes.ParametrosReporte("pe_Usuario", usuarioID));