ASP.NET MVC RC中是否不再存在System.Web.Mvc.ListItem?

时间:2009-01-30 01:18:20

标签: asp.net-mvc

尝试创建一个列表以将一些JSON数据返回到视图。在测试期间创建的Web上的一些教程之后,似乎在RC中代码确实有效。

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/

2 个答案:

答案 0 :(得分:5)

ListItem位于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);
    }

我很想用List&lt; object&gt;做这件事。和匿名类型,以便我可以根据自己的喜好定义属性名称。

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

答案 1 :(得分: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);
}