Jquery 如何在ViewBag中返回一个值以及JsonResult ajax调用中的其他值
嗨,我做了两个下拉列表。第二个dropdownlist取决于第一个dropdownlist选择的选择。例如: 现在,在从Call Nature中选择值之后,调用票证下拉列表将由ajax调用填充 我的查询是我想在文本调用Ticket之后显示调用Ticket dropdownlist的计数值,就像调用Ticket(10)一样,其中10是调用Ticket dropdownlist的计数值 我的控制器类似于:Jquery 如何在ViewBag中返回一个值以及JsonResult ajax调用中的其他值,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,嗨,我做了两个下拉列表。第二个dropdownlist取决于第一个dropdownlist选择的选择。例如: 现在,在从Call Nature中选择值之后,调用票证下拉列表将由ajax调用填充 我的查询是我想在文本调用Ticket之后显示调用Ticket dropdownlist的计数值,就像调用Ticket(10)一样,其中10是调用Ticket dropdownlist的计数值 我的控制器类似于: public JsonResult GetTickets(string id)
public JsonResult GetTickets(string id)
{
if (id == null)
{
id = "0";
}
int CallNatureID = Convert.ToInt32(id);
var TicketsList = (from a in dataContext.CallTickets
join b in dataContext.Calls_HelpDesk
on a.CallTicketNumber equals b.TicketNumber
where a.CallNatureId == CallNatureID
&& a.IsOpenFlag == true
&& a.CallStatusId == 1
&& a.TicketOwner == 1
&& b.FollowupReasonId == 9
select new { a.CallTicketNumber }).ToList();
int TicketCount = TicketsList.Count;
ViewBag.HiddenTicketCount = string.Format("({0})", TicketCount);
return Json(new SelectList(TicketsList, "CallTicketNumber", "CallTicketNumber"), ViewBag.HiddenTicketCount);
}
ViewBag.HiddenTicketCount保存呼叫票证计数的值。但我不能把它和我的护照一起退
return Json(new SelectList(TicketsList, "CallTicketNumber", "CallTicketNumber"), ViewBag.HiddenTicketCount);
}
如何使用Json返回ViewBag.HiddenTicketCount/TicketCount值?您需要像这样修改控制器
int TicketCount = TicketsList.Count;
return Json(new { TicketList = new SelectList(TicketsList, "CallTicketNumber", "CallTicketNumber"), Count = TicketCount });
在阿贾克斯
$.ajax({
//....
success: function(data) {
var ticketList = data.TicketList;// bind dropdown using this list
var count = data.Count;
// I suppose `lblCallTicket` is your call ticket label id
$('#lblCallTicket').text('Call Ticket (' + count + ')');
}
})
如果您不想从控制器发送,那么只需在ajax中执行此操作
success: function(data) {
var ticketList = data.TicketList;// bind dropdown using this list
var count = ticketList.Length;
// I suppose `lblCallTicket` is your call ticket label id
$('#lblCallTicket').text('Call Ticket (' + count + ')');
}
您需要像这样修改控制器
int TicketCount = TicketsList.Count;
return Json(new { TicketList = new SelectList(TicketsList, "CallTicketNumber", "CallTicketNumber"), Count = TicketCount });
在阿贾克斯
$.ajax({
//....
success: function(data) {
var ticketList = data.TicketList;// bind dropdown using this list
var count = data.Count;
// I suppose `lblCallTicket` is your call ticket label id
$('#lblCallTicket').text('Call Ticket (' + count + ')');
}
})
如果您不想从控制器发送,那么只需在ajax中执行此操作
success: function(data) {
var ticketList = data.TicketList;// bind dropdown using this list
var count = ticketList.Length;
// I suppose `lblCallTicket` is your call ticket label id
$('#lblCallTicket').text('Call Ticket (' + count + ')');
}
简单的解决方案是,将它存储在一个变量中并返回它。在我的最后一行return Json()中,如何传递该变量?首先,只返回一个匿名对象的集合,其中只包含值和文本(当您不需要时,将
SelectListItem
的附加属性发送到视图是没有意义的。您不能使用ViewBag
-只需发送和附加对象-返回Json(新的{options=TicketsList,count=TicketsList.count})
您可以提供ajax调用代码吗?或者,您可以使用javascript获取返回数组的长度。简单的解决方案是,将其存储在一个变量中并返回。在我返回的最后一行Json()中,我如何传递该变量?首先,只返回一个包含值和文本的匿名对象集合(当您不需要时,将SelectListItem
的附加属性发送到视图是没有意义的。您不能使用ViewBag
-只需发送和附加对象-返回Json(新的{options=TicketsList,count=TicketsList.count});
您可以提供ajax调用代码吗?或者,您可以使用javascript获取返回的数组的长度。