首页 新闻 搜索 专区 学院

mvc3中如何把JsonResult数据转成对象。用到后面的模板中。

0
悬赏园豆:50 [已关闭问题] 关闭于 2014-06-15 21:14

工作是这样的,我要把获得的报表,作为邮件发送出去。但这个数据在控制Cotrollers中是这样的,

   [HttpGet]         public JsonResult GetList(string index, string id,DateTime time,IdentStateEnum state,  string sidx, string sord, int page, int rows)         {             var jqGridResponse = new JqGridResponse<IdeIdent>(){ PageIndex = page, PageSize = rows };             IQueryable<IdeIdent> data = identRepository.GetList(id,time,state);                                           jqGridResponse.TotalRecordsCount = data.Count();             var pagedViewModel = new PagedViewModel<IdeIdent>             {                 Query = data.AsQueryable<IdeIdent>().OfType<IdeIdent>(),                 GridSortOptions = new GridSortOptions { Column = sidx, Direction = sord.Equals("asc") ? SortDirection.Ascending : SortDirection.Descending },                 DefaultSortColumn = sidx,                 Page = page,                 PageSize = rows,             }             .Setup();             pagedViewModel.PagedList.AsParallel().ToList().ForEach(p => DomainObjectToJson(jqGridResponse, p));             return jqGridResponse.ToJsonResult();         

        }

现在我要在同一个Controllers中运用这个转成对象怎么做呢?求解?

这样才能把它作为邮件的内容拼成模板后发出去。

邮件发送是这样的:

   public ActionResult Send()         {             IdeDaily vm = new IdeDaily();             vm.MailTo = "PXMWHDH;PXMWZMW";             vm.MailCc = "";             vm.Subject = "大修再鉴定" + DateTime.Now.ToString("yyyy-MM-dd") + "日日报";             vm.BodyHtml = "邮件内容";             return View(vm);         }         [HttpPost]         public ActionResult Send(IdeDaily vm)         {             try             {                 MailMessage message = new MailMessage();                 var smtpClient = new SmtpClient();                 message.To = "PXMWHDH;PXMZMW";                 message.Cc = "PXMZMW"; //抄送到                 message.Subject = "大修再鉴定" + DateTime.Now.ToString("yyyy-MM-dd") + "日日报";                 message.Body = BodyHtml();//"邮件内容,测试邮件发送!";                 smtpClient.Send(message);                 return Json(new { result = true, message = "发送成功!" }, JsonRequestBehavior.AllowGet);             }             catch (Exception ex)             {                 this.Log.LogError(ex);                 return Json(new { result = false, message = "发送失败!" }, JsonRequestBehavior.AllowGet);             }         }

        public string BodyHtml()         {             HttpContext.Response.ContentType = "text/html";             string strHtml = CommonHtml.GetFileString("~/Areas/IDE/TempHelper/TempDaily.htm");             StringBuilder strTable = new StringBuilder();             strTable.AppendFormat(string.Format("{0},{1}"), Datastr1(), Datastr2());             HttpContext.Response.Write(strHtml.Replace("[temp1]", strTable.ToString()));             HttpContext.Response.Write(strHtml.Replace("[temp2]", strTable.ToString()));             return strHtml;         }         public string Datastr1()         {

            return "";         }         public string Datastr2()         {             return "";         }       

我要怎么利用同一个Controllers上的JsonResult里的数据转成 对像拼成html模板呢?求解!谢谢

renshen4322的主页 renshen4322 | 初学一级 | 园豆:5
提问于:2014-06-12 11:59
< >
分享
所有回答(3)
0

JsonResult实际上的string,然后content-encoding是application/json。

你这个代码里面里面需要重用的是IQueryable<IdeIdent> data = identRepository.GetList(id,time,state);    

应该将这段作为业务层返回的代码。然后发邮件的时候采用这个data来处理。而不是从JsonResult中获取。

幻天芒 | 园豆:36790 (高人七级) | 2014-06-12 13:45

嗯已经通过你的指点重新完成了。谢谢

支持(0) 反对(0) renshen4322 | 园豆:5 (初学一级) | 2014-06-15 21:12

@renshen4322: :)

支持(0) 反对(0) 幻天芒 | 园豆:36790 (高人七级) | 2014-06-16 09:38
0

一般jsonresult是放一个对象进去的,一般都知道对应类型.

你直接解析字符串,而且jsonresult里面好像是有data成员,里面就是原来的对象数据.

如果你是取到一个json字符串就需要解析.如果直接一个jsonresult返回值.你可以直接.data强转类型.看行不行

吴瑞祥 | 园豆:29337 (高人七级) | 2014-06-12 13:56

嗯谢谢指点。

支持(0) 反对(0) renshen4322 | 园豆:5 (初学一级) | 2014-06-15 21:11
0

已经自己解决

renshen4322 | 园豆:5 (初学一级) | 2014-06-15 21:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册