如何在JS中构造一个对应于C#中对象的对象

时间:2018-04-24 09:38:02

标签: javascript c# asp.net api web

我使用.Net web API,我希望在C#中获取对象的结构并将其发送到前面,这样它就可以像后面那样构造对象。

但我不知道如何在C#中获取对象的确切结构(属性的结构和名称)

例如,对象就是这种对象

public class{
  public int a;
  private string b;
  private anAnotherObject c;
  private List<otherObjects> d;
}

2 个答案:

答案 0 :(得分:0)

您可以按照以下方式执行此操作

以下是我的课程

  public class MyVM
    {
        public int ID {get;set;}
        public string Name { get; set; }
    }

这是我的动作,我的动作是MVC控制器动作,这可以是你的api动作。这是期待类对象的。

 public ActionResult Create(MyVM createVM)
{
///Create Entry
}

现在,当你使用jquery进行调用时,可以像

那样进行调用

您的按钮点击事件将调用CreateEntry。并且有一个名为CreateModel的变量,它是您的类的副本,您通过从文本框中获取值来从js传递值。

function CreateEntry()
{
var _id = $("#txtId").val();
var _Name = $("#txtName").val();
var CreateModel = {
           ID : _id,
       Name  : _Name
        }
var url=""MyAPI/Create"
$.ajax({
            type: "POST",
            headers: headers,
            url: url,
            data: {
                createVM: CreateModel //Action Parameter name and variable which will map with class value.
            },
            success: function (data) {
                alert("Save Success");
            },
            error: function (xhr) {
                ErrorRosterMessage();
            }
        });
}

这将自动映射您的操作类名称及其值。

答案 1 :(得分:0)

首先,您拥有private名成员?

让我们说它们是否公开。然后,您可以使用Javascript Serializer将对象序列化为json并将其发送到html或View

使用ajax调用,你可以发送json作为对象在你的行动method上发送

  $.ajax({url:url,
          data:{j:dataModelOnJson},...})

})