3

我找到了我试图理解的以下代码示例(来自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") };
        }
    }
4

3 回答 3

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

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

于 2012-05-08T15:02:40.093 回答
2

看起来你需要这个:

return new JsonResult { Data = new { Text="Abc", Value="123", Produtcs= new SelectList(products.ToList(), "ProductID", "ProductName") }};
于 2012-05-08T14:45:03.523 回答
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 };
于 2012-05-08T14:43:22.283 回答