2009-01-30 33 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); 
}