MVC .NET JS如何操作ViewData

DongJing-Yin 2017-02-05 03:30:39
如题 是这样的
一个按钮点击弹出JS窗体,窗体内是该条信息的详情内容。
我的操作是这样的:
通过JS函数点击ajaxpost到路由上,路由进行操作
[HttpPost]
public ActionResult GetDiseaseInfo(string CardId)//诊断记录
{
HealthCloud.BLL.EHRDB.HIS_DiseaseInfo blldis = new HealthCloud.BLL.EHRDB.HIS_DiseaseInfo();
ViewData["Diseaseinfo"] = blldis.GetDiseaseInfo(CardId);
return Json(new { status = "1" }, JsonRequestBehavior.AllowGet);
}
现在想问问 有没有什么方法可以让js在success内解析viewdata内的数据,如果可以应该如何操作,或者这套流程有更好的操作办法,也欢迎指点一二,新手学习MVC,不胜感激。
...全文
674 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
DongJing-Yin 2017-02-06
  • 打赏
  • 举报
回复
引用 7 楼 dongxinxi 的回复:
你用ajax返回的话就是json字符串了,我上面写的话就是json对象,js虽然是弱类型的,但并不意味着完全没有类型验证 success: function (data) { if (data && data.length != 0) { data = JSON.parse(data); for (var i = 0; i < data.length; i++) { document.write(data[i].ID); } } },
感谢 问题解决
data = JSON.parse(data);
把传回的json格式解析为对象,之后再遍历取值, 少了一步解析 , 谢谢
  • 打赏
  • 举报
回复
你用ajax返回的话就是json字符串了,我上面写的话就是json对象,js虽然是弱类型的,但并不意味着完全没有类型验证 success: function (data) { if (data && data.length != 0) { data = JSON.parse(data); for (var i = 0; i < data.length; i++) { document.write(data[i].ID); } } },
DongJing-Yin 2017-02-06
  • 打赏
  • 举报
回复
引用 5 楼 dongxinxi 的回复:
变成Json再遍历就是了
var items = @Html.Raw(Json.Encode(ViewData["Diseaseinfo"]));
if(items && items.length != 0){
     for(var i =0; i<items.length; i++){
           document.write(items[i].Name);
     }
}
success: function (data) { if (data && data.length != 0) { for (var i = 0; i < data.length; i++) { document.write(data[i].ID); } } }, 我是这样操作的 直接输出data 可以看到json数组,但是按照上面的循环, 就是输出无数个 undefined json如下:[{"ID":50,"Code":"20161222","CardID":"4114XXXXXXXX2441","Disease":"稽留流产","ICD":"","SureDate":"2016/12/1 ","State":1,"RecorderID":0,"HospitalID":2,"Hospital":"南通大学附属医院"},{"ID":53,"Code":"20161222","CardID":"4114XXXXXXXX2441","Disease":"稽留流产","ICD":"","SureDate":"2016-12-01","State":1,"RecorderID":1,"HospitalID":1,"Hospital":"医联网"}] 很奇怪的是 这次 连弹出 alert(data[0].ID) 都没有值
  • 打赏
  • 举报
回复
变成Json再遍历就是了
var items = @Html.Raw(Json.Encode(ViewData["Diseaseinfo"]));
if(items && items.length != 0){
     for(var i =0; i<items.length; i++){
           document.write(items[i].Name);
     }
}
DongJing-Yin 2017-02-06
  • 打赏
  • 举报
回复
引用 3 楼 sinat_28984567 的回复:
如果对js处理viewdata不熟悉的话,可以把viewdata的内容在后台放到json中返回到页面里,然后在 success: function (result) { }这个方法里对result进行操作,result里包含了后台viewdata的数据
这样操作嘛? 路由返回 return Json(ViewData["Diseaseinfo"], JsonRequestBehavior.AllowGet); 然后 success: function (data) { alert(data); }, 这样吗?
二月十六 2017-02-06
  • 打赏
  • 举报
回复
如果对js处理viewdata不熟悉的话,可以把viewdata的内容在后台放到json中返回到页面里,然后在 success: function (result) { }这个方法里对result进行操作,result里包含了后台viewdata的数据
DongJing-Yin 2017-02-06
  • 打赏
  • 举报
回复
引用 1 楼 qq_34082025 的回复:
懂了你的意思,viewdata这个东西是可以在js上面直接用的,只要你之前跳转的控制器写了他,直接@ViewData["Diseaseinfo"] ,就可以得到了, success: function (result) { @ViewData["Diseaseinfo"]直接用 }
那怎么输出这个视图内的数据呢? <tbody> @{ System.Data.DataTable dt=(System.Data.DataTable)ViewData["diseaseuserinfo"]; if(dt.Rows.Count>0){ for(int i=0;i<dt.Rows.Count;i++) { <tr class="gradeA"> <td class="center">@i</td> <td class="center">@dt.Rows[i]["Code"]</td> <td class="center">@dt.Rows[i]["Name"]</td> <td class="center">@dt.Rows[i]["Age"]</td> <td class="center">@dt.Rows[i]["CardID"]</td> <td class="center tdcursor"><a href="#myModal" data-toggle="modal" class="btn btn-xs btn-info" onclick="alo('@dt.Rows[i]["Name"]','@dt.Rows[i]["CardID"]')">诊断信息</a></td> </tr> } } } </tbody> Razor可以这样写 JS怎么操作呢 我这样 可行嘛 success: function (data) { // alert(data); alert(@ViewData["Diseaseinfo"]); },
我是三峡移民 2017-02-05
  • 打赏
  • 举报
回复
懂了你的意思,viewdata这个东西是可以在js上面直接用的,只要你之前跳转的控制器写了他,直接@ViewData["Diseaseinfo"] ,就可以得到了, success: function (result) { @ViewData["Diseaseinfo"]直接用 }

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧