从Web方法返回多个项目的最佳方法?

时间:2011-08-05 18:00:50

标签: c# asp.net

嗨,我有这种情况。

我必须通过调用Web方法在UI中填充2个标签和1个下拉列表

由于该函数是静态的,我无法从Web方法中访问页面元素(标签和下拉列表)。所以我试图返回我想要的HTML。

 [WebMethod()]
    public static object[]  GetStatus()
    {
        //Return text for Label1;

        //Return text for Label2;

        //Return items to display in ListBox  [Number of items can vary]

    }

我认为对象[]可能有用..但这是处理这种情况的最佳方法吗?还要考虑设置这些控件的值所需的java脚本代码(在调用web方法之后),这种情况下的最佳实践是什么?

4 个答案:

答案 0 :(得分:6)

创建一个ViewModel类。

public class StatusViewModel
{
    public string Label1 { get; set; }
    public string Label2  { get; set; }
    public IDictionary<string, string> ListBox { get; set; }
}

[WebMethod()]
public static StatusViewModel  GetStatus()
{
    // do work
    return new StatusViewMode....

}

答案 1 :(得分:3)

string[]怎么样?你试过了吗?

答案 2 :(得分:2)

创建一个复合对象并返回该对象。

public class combinedObject{
  public string Labe11;
  public string Label2;
  ..
}

答案 3 :(得分:1)

创建包含匹配属性的自定义对象。然后编写自定义序列化以序列化和反序列化。