我的工作列表,JSON和viewbag。我有一個jQuery UI對話框。在這個對話框的確定按鈕上,我打開另一個jQuery UI對話框。爲了填充新打開的彈出窗口,我正在使用返回集合的jquery ajax調用。我正在使用這個集合來創建表格行。代碼是在這裏:在asp.net MVC 3 applciation返回從同一個控制器動作
$("#Prices").dialog({
autoOpen: false,
autoResize: true, buttons: {
"OK": function() {
var PirceCurrencies = $('#PirceCurrencies').val();
jQuery("#hdCurrencyId").val(PirceCurrencies);
jQuery(this).dialog('close');
$.ajax({
type: "POST",
dataType: "json",
url: "/Home/GetRecordingRates",
data: { Id: $("#hdCurrencyId").val() },
success: function (data) {
$("#results").find("tr:gt(0)").remove();
var messages = data.Result;
$.each(messages, function(k, v) {
var row = $('<tr>');
row.append($('<td>').html(v.DialPrefix));
row.append($('<td>').html(v.Rate));
$('#results').append(row);
});
jQuery('#RecordingRates').dialog({ closeOnEscape: false });
$(".ui-dialog-titlebar").hide();
$("#RecordingRates").dialog({ dialogClass: 'transparent' });
$('#RecordingRates').dialog('open');
}
});
}
},
open: function() {
$('.ui-dialog-buttonset').find('button:contains("OK")').focus();
$('.ui-dialog-buttonset').find('button:contains("OK")').addClass('customokbutton');
}
});
和控制器的操作是:
public JsonResult GetRecordingRates(int Id)
{
List<DefaultRateChart> defaultRateCharts = new List<DefaultRateChart>();
Currency currency = new Currency();
using (IDefaultRateChartManager defaultRateChartManager = new ManagerFactory().GetDefaultRateChartManager())
{
defaultRateCharts = defaultRateChartManager.GetAll().Where(rc => rc.Currency.Id == Id
&& (!rc.NumberPrefix.StartsWith("#") && !rc.NumberPrefix.Equals("Subscription")
&& !rc.NumberPrefix.Equals("Default")) && rc.AccountCredit == "Credit").ToList();
}
using (ICurrencyManager currencyManager = new ManagerFactory().GetCurrencyManager())
{
currency = currencyManager.GetById(Id);
ViewBag.currecycode = currency.CurrencyCode;
ViewBag.countrycode = currency.CountryCode;
}
return this.Json(new {
Result = (from obj
in defaultRateCharts
select new {
Id = obj.Id,
DialPrefix = obj.NumberPrefix,
Rate = obj.PurchaseRates
}
)
}, JsonRequestBehavior.AllowGet);
}
所有這一切工作正常,但我需要表現出比填充集內的其他上新開彈出一些其他數據/創建HTML錶行。我需要做另一個Ajax調用另一個控制器的行動,這將返回數據?
請建議
感謝您的答覆。實際上defaultRateCharts是我使用的HTML自定義對象,其中貨幣是另一個自定義對象(不是列表),它需要在同樣的彈出式使用的列表。我可以從一個控制器操作返回一個集合和一個自定義對象嗎? – DotnetSparrow 2013-04-30 13:25:27
是的。您必須一次完成,並在您的JS代碼中設置調試器非常有用。通過這種方式,您可以檢查JSON並枚舉列表/對象將變得非常容易。 – 2013-04-30 13:29:37
你的意思是,我需要currnecy添加到我的JSON對象? – DotnetSparrow 2013-04-30 13:40:46