在控制器json方法中获取ReportColumnsList中的列名(Account,EmailTo,Subject,MessageContent)..但是我需要在视图页面中传递这些值并显示在列表框中。 数据以[对象]的形式出现,并在列表框中显示如下.. 请给我解决方案..
谢谢&此致
控制器部分中的[AllowAnonymous]
public ActionResult GetColumnsByFavouriteReport(ReportsModel Model,string Columns)
{
List<Report> ReportColumnsList = MCPAdminControllerPageObject.GetColumnsByReportName(Columns);
return Json(ReportColumnsList, JsonRequestBehavior.AllowGet);
}
在视图中: -
$(document).ready(function () {
$('#FavouriteReports').change(function () {
$.ajax({
type: "POST",
url: '@Url.Action("GetColumnsByFavouriteReport", "MCPAdmin")',
data: { Columns: $('#FavouriteReports').val() },
datatype: "json",
traditional: true,
success: function (data) {
$('#SelectedFields').empty();
$.each(data, function (key, val) {
$('#SelectedFields').append('<option id="' + key + '">' + val + '</option>');
})
}
});
});
@Html.ListBoxFor(m => m.SelectedFields, new SelectList(new[] { "" }), new { @class = "form-control editable" })
答案 0 :(得分:0)
让我假设您的模型类报告
public class Report {
public int ReportId { get; set; }
public Name ReportName { get; set; }
}
在你的ajax方法中
if(data!=null) {
$('#SelectedFields').empty();
var dd = null ;
$.each(data, function (key, val) {
dd += "<option " + " value=" + val.ReportId + ">" + val.ReportName + "</option>";
});
//append to given id
$('#SelectedFields').append(dd);
}
我希望这会帮助你,绑定你的下拉列表