2009-01-30 41 views
2

尝试创建一个列表以将一些JSON数据返回到视图。在测试期间创建的网络上的一些教程之后,但在RC中似乎代码确实起作用。ASP.NET MVC RC中不再存在System.Web.Mvc.ListItem吗?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace MvcApplication6.Controllers 
{ 
    [HandleError] 
    public class HomeController : Controller 
    { 
     public JsonResult list() 
     { 
      List<ListItem> list = new List<ListItem> { 
       new ListItem() {Name="value", Something = "more Values"} 
      }; 
      return Json(List); 
     } 
    } 
} 

问题是在System.Web.Mvc命名空间中找不到ListItem。我似乎无法得到这个工作。如果ListItem已被删除,您如何在Release Candidate MVC中完成此操作?

这里有我想要使用教程:

http://geekswithblogs.net/michelotti/archive/2008/06/28/mvc-json---jsonresult-and-jquery.aspx http://nayyeri.net/blog/using-jsonresult-in-asp-net-mvc-ajax/

回答

5

列表项是在System.Web.UI.WebControls ......你可能不希望使用此。您可以使用System.Web.Mvc命名空间中的SelectListItem,但您必须更改属性名称(您也必须为ListItem执行此操作)。

public JsonResult list() 
    { 
     List<SelectListItem> list = new List<SelectListItem> { 
      new ListItem() { Text="value", Value = "more Values" } 
     }; 
     return Json(List); 
    } 

我会忍不住用列表<对象>和匿名类型要做到这一点,这样我可以定义属性名合我的胃口。

public JsonResult list() 
    { 
     List<object> list = new List<object> { 
      new { Name="value", Something = "more Values" } 
     }; 
     return Json(List); 
    } 
+0

有关如何嵌套JSON的想法?所以JSON看起来像这样{tags:[{name:“value”}]}如何将标签插入到JSON结果中? – RedWolves 2009-01-30 01:59:23

0

我会去与MVC版本。 ListItem遵循Web表单模型,向前推进,你可能想分别使用SelectList和SelectListItem。

public JSonResult lstResult() 
{ 
    SelectList lst = new SelectList(new List<SelectListItem>() 
    { 
     new SelectListItem { Text = "Text here", Value = "0" }, 
     new SelectListItem { Text="Second Text", Value="1"}, 
     new SelectListItem { Text="Third Text", Value="2" }, 
     new SelectListItem { Text="Fourth Text", Value="3"} 
    }); 
     return JSon(lst); 
}