나는 asp.net MVC 3 applciation에서 일하고있다. jquery UI 대화가 있습니다. 이 대화 상자의 확인 버튼에서 다른 jquery UI 대화 상자를 여는 중입니다. 새롭게 열린 팝업을 채우기 위해 jquery ajax 호출을 사용하여 컬렉션을 반환합니다. 이 컬렉션을 사용하여 테이블 행을 만듭니다. 코드는 여기에 있습니다 :같은 컨트롤러 액션에서 Json과 뷰백으로 목록 반환
$("#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 테이블 행을 작성해야 . Fort는 데이터를 반환 할 다른 컨트롤러 액션에 대한 또 다른 아약스 호출을해야합니까?
제안 하시겠습니까?
data.countryCode
감사를 사용할 수 있습니다. 실제로 defaultRateCharts는 html에서 사용하는 사용자 정의 객체의 목록입니다. 여기서 통화는 동일한 팝업에서 사용해야하는 다른 사용자 정의 객체 (목록이 아님)입니다. 한 컨트롤러 작업에서 컬렉션과 사용자 지정 개체를 모두 반환 할 수 있습니까? – DotnetSparrow예. 당신은 한 번에 그것을해야 JS 코드에서 디버거를 설정하는 것은 매우 유용합니다. 이 방법으로 JSON을 확인하고 List/Object 열거를 매우 쉽게 할 수 있습니다. –
내 Json 객체에 currnecy를 추가해야한다는 뜻입니까? – DotnetSparrow