action怎么将json返回ajax,从MVC 3中的ActionResult类型方法将JSon数组返回到$ .ajax

我有一个TreeView帮助器,其中包含类别及其链接的列表。我做到了

@helper TreeView(FavouriteLinksXmlMVC3.Controllers.HomeController cat)

{

cat = new FavouriteLinksXmlMVC3.Controllers.HomeController();

try

{

foreach(FavouriteLinksXmlMVC3.Models.CategoriesControl list_category in cat.Categories)

{

@list_category.Name

@if(list_category.hasChild)

{

@foreach(var links in list_category.Links)

{

@links.Name

}

}

}

}

catch(Exception e)

{

Response.Write( e.ToString() );

}

}

好。它的工作就像一种魅力。

我做了一个函数,它使用JQuery获取链接信息:

$(".file").click(function () {

$.ajax({

url: '@Url.Action("GetLinkInfo")',

data: { cat_name: $(this).attr("categ_name"), url: $(this).attr("id") },

type: "GET",

success: function (data) {

//alert(data.Name + " " + data.Url + " " + data.Description);

var make = "

Name:" + data.Name + "
Url:" + data.Url + "
Description" + data.Description + "
";

$("#details").html(make);

}

});

});

还有GetLinkInfo

[HttpGet]

public ActionResult GetLinkInfo( string cat_name, string url ) {

if ( string.IsNullOrEmpty( cat_name ) )

throw new ArgumentNullException( "GetLinkInfo cat_name" );

if ( string.IsNullOrEmpty( url ) )

throw new ArgumentNullException( "GetLinkInfo url" );

var c = this.Categories.Find( x => x.Name == cat_name );

string name1="", url1="", descr1="";

bool done = false;

if ( c != null ) {

foreach ( var p in c.Links ) {

if ( p.Url == url ) {

name1 = p.Name;

url1 = p.Url;

descr1 = p.Description;

done = true;

break;

}

}

}

if ( done ) {

return Json(

new {

Name = name1,

Url = url1,

Description = descr1

},

JsonRequestBehavior.AllowGet

);

} else {

return View();

}

}

我解决了这个问题

[HttpGet] //controller

public JsonResult GetCategoryInfo( string cat_name ) {

if ( string.IsNullOrEmpty( cat_name ) )

throw new ArgumentNullException( "GetCategoryInfo cat_name" );

var c = this.Categories.Find( x => x.Name == cat_name );

if ( c != null ) {

List lk = null;

if ( c.hasChild ) {

lk = new List();

foreach ( var p in c.Links ) {

lk.Add( p );

}

} else {

lk = new List( 0 );

}

return this.Json(lk,JsonRequestBehavior.AllowGet);

} else {

return this.Json(new List( 0 ),JsonRequestBehavior.AllowGet);

}

}

和jQuery

$(".folder").click(function() {

var find_id = $(this).attr("id");

$.ajax({

type: "GET",

url: '@Url.Action("GetCategoryInfo")',

dataType : 'json',

data: { cat_name: find_id },

success: function (response) {

// $("#details").html(response.toString());

var make = "

make += "

NameUrlDescription";

$.each(response, function (index, lk) {

make += "

" + lk.Name + "" + lk.Url + "" + lk.Description + "";

});

make += "

";

$("#details").html(make);

}

});

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值