0

$.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 エラーが発生します)。

私がしていることを行うためのより良い方法はありますか? 返すデータを厳密に入力する必要がありますか、それともこのアプローチで十分ですか?

ありがとう。

4

3 に答える 3

1

すでに使用してみましたか

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

これが役立つことを願っています。

于 2011-01-28T14:11:41.640 に答える
0

まず、アクションの戻り値を IList に変更します...

セッション クローズ エラーは、「var フィールド」の実行の遅延に起因する可能性があると思います。return ステートメントを fields.ToList() に変更すると、ラムダ式の実行が強制され、セッション エラーが解消される可能性があります。

[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();
    }
于 2010-01-14T19:40:37.487 に答える