尝试创建一个列表以将一些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/
答案 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);
}