Pergunta

Eu estou chamando o seguinte método no meu controlador usando $ .getJSON ()

    [return: JSONReturnBinder]
    public object ProfileFields()
    {
        var userfields = _profileSvc.GetFields(282);
        var fields = from f in userfields
                     select new {f.ID, f.FieldName};

        return fields;
    }

Meu _profileSvc volta com dados extras que eu não preciso (na verdade, eu recebo erros NHibernate porque a sessão é fechada).

Existe uma maneira melhor de fazer o que estou fazendo? Devo digitar fortemente os dados Estou voltando ou é esta abordagem é suficiente?

Graças.

Outras dicas

Você já tentou usar

[return: JSONReturnBinder(Properties = "ID,FieldName")]
public object ProfileFields()
{
        var userfields = _profileSvc.GetFields(282);
    return userfields;
}

Espero que isso ajude.

Em primeiro lugar, gostaria de alterar o valor de retorno da ação a ser um IList ...

Eu acho que a sessão fechada erro pode resultar de uma execução atrasada de 'campos var'. Se você mudar de instrução de retorno para fields.ToList (), que irá forçar a execução da expressão lambda e você pode se livrar do erro Sessão:

[return: JSONReturnBinder]
    public object ProfileFields()
    {
            var userfields = _profileSvc.GetFields(282);
            var fields = from f in userfields
                         select new {f.ID, f.FieldName};

    return fields.ToList();
    }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top