我使用 $.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;
    }

我的 _profileSvc 返回了我不需要的额外数据(实际上我收到 NHibernate 错误,因为会话已关闭)。

有更好的方法来做我正在做的事情吗?我应该强类型化我要返回的数据还是这种方法足够?

谢谢。

其他提示

让您使用已经尝试过

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

我希望这有助于。

首先,我想改变动作的返回值是一个IList ...

我认为会话关闭错误可以从“变种字段”的延迟执行干。如果您改变return语句fields.ToList(),这将迫使lambda表达式的执行,你可能摆脱会话错误的:

[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();
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top