【问题标题】:How to send POST requests containing an XML array in ASP.NET如何在 ASP.NET 中发送包含 XML 数组的 POST 请求
【发布时间】:2019-12-06 20:31:05
【问题描述】:

我正在尝试通过 rest 接收包含 XML 数组的发布请求,如果我单独发布它可以正常工作,但我尝试发布一个数组它说:

第 1 行位置 140 出错。需要元素。

我的目标是能够接收数组或个人并在 SQL 中发布它们。

这是我想要的 XML 格式:如果我可以删除 xmlns 会很好,但我不知道如何:

<ArrayOfT_persons xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/RestDataAccess">
<T_persons>
  <Name>jhon</Name>
  <DATETIME>2019-07-29T15:51:41.2540564+03:00</DATETIME>
  <GRADE>A</GRADE>
  <AGE>16</AGE>
</T_persons>
<T_persons>
  <Name>Will</Name>
  <DATETIME>2019-07-29T15:51:41.2540564+03:00</DATETIME>
  <GRADE>C</GRADE>
  <AGE>18</AGE>
</T_persons>
</ArrayOfT_persons>

这里是post方法

[ResponseType(typeof(T_persons))]
public async Task<IHttpActionResult> PostT_persons(T_persons t_persons)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    db.T_persons.Add(t_persons);

    try
    {
        await db.SaveChangesAsync();
    }
    catch (DbUpdateException)
    {
        if (T_personsESExists(t_persons.NAME))
        {
            return Conflict();
        }
        else
        {
            throw;
        }
    }

    return CreatedAtRoute("DefaultApi", new { id = T_persons.NAME }, t_persons);
}

【问题讨论】:

    标签: c# sql asp.net xml rest


    【解决方案1】:

    最有可能的答案,你需要一个 TPerson 列表:

    public async Task<IHttpActionResult> PostT_persons(List<T_persons> t_persons)
    { 
       ...
    }
    

    乍一看,该对象也应命名为 TPerson(理想情况下,不是您所显示的:

    List<TPerson> TPersons;
    

    对象看起来像这样的地方:

    public class TPerson
    {
        public string Name {get; set;}
        public DateTime DateTime {get; set;}
        public char Grade { get; set; }
        public int Age { get; set; }
    }
    

    【讨论】:

    • 确定如何在数据库中单独添加它们
    • 这对我来说将是第二个问题,@AshmedMear 因为您似乎在这里专注于 Post 方法......所以是关于 QA 来回答 google-able 问题......但它应该本质上是:TPersons.Foreach(e =&gt; { db.T_persons.Add(e) }); db.Save();
    猜你喜欢
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    相关资源
    最近更新 更多