Asp.net mvc mvc解析并在复选框中显示json的内容

Asp.net mvc mvc解析并在复选框中显示json的内容,asp.net-mvc,json,Asp.net Mvc,Json,我是mvc新手,这是我的要求。我正在开发一个页面,它应该呈现一个文本和一个复选框。将根据数据库中的T/F值选中该复选框。因此,我在GetData()方法中将所有必要的数据作为Json对象从db传递到视图 名称空间ClinicalAdvantage.Web.Controllers.UserAppSettingC { 使用制度; 使用System.Collections.Generic; 使用Newtonsoft.Json.Linq; 使用NHibernate.Mapping; 公共类UserApp

我是mvc新手,这是我的要求。我正在开发一个页面,它应该呈现一个文本和一个复选框。将根据数据库中的T/F值选中该复选框。因此,我在GetData()方法中将所有必要的数据作为Json对象从db传递到视图

名称空间ClinicalAdvantage.Web.Controllers.UserAppSettingC
{
使用制度;
使用System.Collections.Generic;
使用Newtonsoft.Json.Linq;
使用NHibernate.Mapping;
公共类UserAppSettingsController:控制器
{
专用只读IAgg1 agg;
公共用户应用设置控制器(IAgg1 agg)
{
this.agg=agg;
}
#区域公共方法和运算符
公共行动结果索引()
{
返回这个.View();
}
公共操作结果GetData()
{
返回新的JsonNetResult(){Data=this.agg.GetAllUserAppSettings()};
}
公共操作结果保存(JObject userAppSettings)
{
if(userAppSettings!=null)
{
this.agg.SaveAllUserAppSettings(userAppSettings);
}
返回this.Json(新的{Status=“Success”});
}
#端区
}
}
我曾经尝试返回作为索引()结果写入viewmodel的相同数据。我做过类似的事情
公共行动结果索引()
{
返回此.View(model);
}
为此,我在相应的视图中写下
@模型ClinicalAdvantage.Web.ViewModels.UserAppSettings1.UserAppSettingsViewModel
@CheckBoxFor(x=>x.IsM,新的{maxlength=“50”,size=“50”})
但由于某些原因,我没有使用viewmodel返回数据。因此,上面的VEW编码方法可能不正确。我没有使用GetData()将数据传递到前端,因此无法真正更改此设置

public ActionResult GetData(){return new JsonNetResult(){Data=this.agg.GetAllUserAppSettings()};}

但我想知道,当我将此json数据作为GetData方法的结果返回为tyype JsonNetResult时,如何编写前端代码来解析此json数据。。我的观点会在哪里。如果我想显示复选框和保存按钮,代码应该是什么。复选框将根据json返回的值填充

这是我返回的json

{“MaskPatientName”:{“enabled”:true,“value”:false}

应该有一个名为MaskPatienTName的标签 如果value属性为true,则应选中该复选框

单击save按钮时,将调用控制器中的save方法


请帮助我

最简单的解决方案是在索引操作中将填充的视图模型传递给视图

public ViewResult Index()
{
    return View(agg.GetAllUserAppSettings());
}
然后您的视图应该是这样的(使用Html帮助器创建表单标记)。这假设IsM是UserAppSettingsViewModel的属性

@model ClinicalAdvantage.Web.ViewModels.UserAppSettings1.UserAppSettingsViewModel

@using (Html.BeginForm("Save", "UserAppSettings")) {
    @Html.CheckBoxFor(x => x.IsM, new { maxlength = "50", size = "50" })
    <!-- Form content goes here -->
    <input type="submit" value="Save" />
}
@model ClinicalAdvantage.Web.ViewModels.userappsetings1.userappsetingsviewmodel
@使用(Html.BeginForm(“保存”、“用户应用设置”)){
@CheckBoxFor(x=>x.IsM,新的{maxlength=“50”,size=“50”})
}

谢谢你,菲尔!我明白你说的。但由于某些原因,我没有使用viewmodel返回数据。我第一次就是这样做的。但现在我真的无法改变这种将数据传递到前端的方式。这是一个json,使用GetData()类似于这个公共ActionResult GetData(){return new JSonnerResult(){Data=this.agg.GetAllUserAppSettings()};}所以你能告诉我如何从前端读取它吗。我应该在哪里写入此视图?好的,在这种情况下,为什么不使用ViewBag将数据从操作传递到视图?别把事情弄得太复杂了!在一天结束时,您只需设置CheckBox的值。我的场景并不像我发布的那样简单。我应该只在Save()中传递数据,并希望调试Save操作方法。我没有前端准备好触发保存操作。所以,只要有这段代码,如果我必须调试save方法并将自己的jobject作为参数传递给save,而不必从前端触发,我该怎么做呢?
@model ClinicalAdvantage.Web.ViewModels.UserAppSettings1.UserAppSettingsViewModel

@using (Html.BeginForm("Save", "UserAppSettings")) {
    @Html.CheckBoxFor(x => x.IsM, new { maxlength = "50", size = "50" })
    <!-- Form content goes here -->
    <input type="submit" value="Save" />
}