javascript - ViewModel 当前状态到 JSON

标签 javascript c# jquery asp.net-mvc

我对 aps.net mvc 项目有疑问。我有一个 View ,其中设置了开始表单内的复选框列表,然后在提交时将相应的字段显示为报告。因此,我必须在我的 View 中添加一个按钮,用户可以在其中设置他想要查看的字段,以便他可以将所有复选框值及其名称保存为预设。

我的模型有很多嵌套模型,它看起来像这样:

 public class EmployeeOverallReport
{
    public List<PersonalData> ListOfPersonalData { get; set; }
    public EmployeeOverallReportBool ColumnsNeeded { get; set; }
    public EmployeeOverallReportFilters ModelFilters { get; set; }
}

我实际上需要 ColumnsNeeded 模型,它有很多 bool 属性用于存储每个复选框值(true/false)。

因此,单击时我必须获取复选框的当前状态并使用这些模型值发布帖子。

我一直在尝试序列化我的表单:

var data = $('#myForm').serialize();
     $.post(url, { presetName: Name, entry: data}, function (data) {
         $("#saveResult").html("Saglabats");
     });

我得到了 JSON 字符串,但它无效,而且我无法将其反序列化回来。

这是我现在正在尝试做的事情:

    $("#savePresetButton").on('click', function () {
         var url = "/Reports/SavePreset";
         var data = @Html.Raw(Json.Encode(Model));
         $.post(url, { presetName: Name, entry: data}, function (data) {
             $("#saveResult").html("Saglabats");
         });
     });

此代码使用我的 viewModel 及其属性,其中所有 ColumnsNeeded 属性都设置为 false,因为默认情况下, View 中的所有用户端更改尚未设置为模型,因此我的表单尚未提交,并且值没有改变。

如何获取用户端所有复选框的当前状态? 不这样做:

 var dataset = {
            CategoryBool: $("#ColumnsNeeded_CategoryBool").val(),
            NameBool: $("#ColumnsNeeded_NameBool").val(),
            KnowledgeLevelBool: $("#ColumnsNeeded_KnowledgeLevelBool").val(),
            SkillAdditionalInfoBool: $("#ColumnsNeeded_SkillAdditionalInfoBool").val(),
            ...
           }

因为我在那里有超过 90 处特性..

我对这篇文章感到抱歉,但由于模型内的属性数量,发布一些代码是不可能的。

最佳答案

你可以serialize整个表单和ajax提交表单本身?

参见:Pass entire form as data in jQuery Ajax function

关于javascript - ViewModel 当前状态到 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40171812/

相关文章:

javascript - 获取 JQuery ajax 请求进度的最干净的方法是什么?

c# - 为什么 AsyncLocal<T> 传播到子线程而 ThreadLocal<T> 不传播?

jquery - 如何将 TinyMCE 永久包装添加到内容区域

javascript - 如何删除 timeline.js 中的 slider 部分?

javascript - Firefox 中范围广泛、内容可编辑的插入符定位和焦点

javascript - 如何禁用 bsdatePicker 中的 future 日期

c# - 为什么附加调试器后即时编译的 C# 代码无法运行?

c# - Rhino Mocks、void 和属性

javascript - 使用 nextUntil 查找当前单元格的索引

javascript - 如何在jquery函数中获取console.log数据