余米试图传递一个对象来查看与viewbag并将其传递给JavaScript参数视图 但是,当涉及到分配对象,它看起来像字符串脚本值喜欢它的命名空间viewbag对象传递给JavaScript
在控制器:
public ACCIDENT_REPORTS getFilledReportWithEntitiesById(int accidentReport_id)
{
ACCIDENT_REPORTS report = new ACCIDENT_REPORTS();
report = context.ACCIDENT_REPORTS.Include("ACCR_ENTITIES").Where(a => a.ID == accidentReport_id).FirstOrDefault();
return report;
}
ViewBag.Report = DatabaseContext.Current.AccidentReportingRepository.getFilledReportWithEntitiesById(id); //its okey, all data in viewbag
鉴于
:
<script>
debugger
var data = '@ViewBag.Report';
</script>
// in debugger value looks like; var data = 'Application.Database.ACCIDENT_REPORTS;
为什么它看起来像字符串?我怎么能传递viewbag的内容对JavaScript值
这里是我的实体对象的返回类型:
public partial class ACCIDENT_REPORTS
{
public ACCIDENT_REPORTS()
{
this.ACCR_ENTITIES = new HashSet<ACCR_ENTITIES>();
}
public decimal ID { get; set; }
public decimal FACILITY_ID { get; set; }
public Nullable<System.DateTime> START_DATE { get; set; }
public Nullable<System.DateTime> END_DATE { get; set; }
public string TITLE { get; set; }
public Nullable<decimal> ACCIDENT_TYPE { get; set; }
public Nullable<decimal> REPORTED_UNDER { get; set; }
public Nullable<decimal> SEVESOII_STATUS { get; set; }
public Nullable<decimal> INDUSTRIAL_ACTIVITY { get; set; }
public string REASON_FOR_REPORTING { get; set; }
public string ACCIDENT_DESCRIPTION { get; set; }
public string SITE_DESCRIPTION { get; set; }
public string UNIT_DESCRIPTION { get; set; }
public string CAUSES_OF_ACCIDENT { get; set; }
public string CONSEQUENCES { get; set; }
public string EMERGENCY_RESPONSE { get; set; }
public string LESSONS_LEARNED { get; set; }
public string ACCIDENTS_INVOLVING { get; set; }
public Nullable<decimal> REPORT_STATUS { get; set; }
public virtual ICollection<ACCR_ENTITIES> ACCR_ENTITIES { get; set; }
}
}
它返回一个enttiy对象。我也试图序列化,但在JSON里面它也看起来名字空间字符串:S – user3347326 2014-10-09 13:40:28
@ user3347326:“一个实体对象”并没有真正告诉我任何东西。它似乎是一种自定义类型(尽管不遵循C#命名约定,但这不是什么大问题)。你是如何尝试将其序列化为JSON的,结果如何?被序列化的对象的结构是什么? – David 2014-10-09 13:42:59
var data = JSON.parse('@ Html.Raw(ViewBag.Report)');这种方式,我总是使用和工作良好的解析方法,但现在的内容原始看起来像'Application.Database.ACCIDENT_REPORTS'值看起来命名空间字符串我认为它与你说有关C#namin我怎么能解决这个问题? (我编辑了这个问题) – user3347326 2014-10-09 13:57:17