如何将静态文本设置为JsonResult?

时间:2012-05-08 14:40:37

标签: c# asp.net asp.net-mvc-3 telerik telerik-mvc

我发现了以下代码示例(来自Telerik),我正在努力理解。  我需要做的是以某种方式将静态文本设置为JsonResult(egText =“Abc”和Value =“123”)

    public ActionResult _AjaxLoading(string text)
    {
        Thread.Sleep(1000);
        using ( var nw = new NorthwindDataContext() )
        {
            var products = nw.Products.AsQueryable();
            if ( text.HasValue() )
            {
                products = products.Where((p) => p.ProductName.StartsWith(text));
            }
            return new JsonResult { Data = new SelectList(products.ToList(), "ProductID", "ProductName") };
        }
    }

3 个答案:

答案 0 :(得分:3)

public ActionResult _AjaxLoading(string text
{
  var data = new { Text= "123", Value= "Abc"};
  return Json(data, JsonRequestBehavior.AllowGet);
}

如果是HTTPGet方法,则应指定JsonRequestBehavior.AllowGet作为第二个参数,以从GET方法返回JSon数据

答案 1 :(得分:2)

看起来你需要这个:

return new JsonResult { Data = new { Text="Abc", Value="123", Produtcs= new SelectList(products.ToList(), "ProductID", "ProductName") }};

答案 2 :(得分:1)

这就是你要找的东西

return new JsonResult { Text = "Abc", Value="123" };

如果您想在开始时向下拉菜单添加新元素

var editedProducts = new SelectList(products.ToList(), "ProductID","ProductName" ).ToList();
editedProducts.insert(0, new SelectListItem() { Value = "123", Text = "Abc" });

return new JsonResult { Data = editedProducts };