我有以下需要发送到我的api的数据集,我不确定要使用哪种数据类型:
{"UnitOfMeasureRelatedUnitData": [
{
"Name": "test",
"Active": true,
"UnitOfMeasureTypeID": "dd89f0a0-59c3-49a1-a2ae-7e763da32065",
"BaseUnitID": "4da30098-3574-4a0c-a07f-c185ef34defe",
"BaseUnitName": null,
"BaseUnitAbbreviation": null,
"RelatedUnitDisplayOrder": 1,
"RelatedUnitName": "Foot",
"RelatedUnitAbbreviation": "ft",
"RelatedUnitConversionRatio": 12,
"UnitOfMeasureSetID": "12a7c55a-6dcd-7261-c9e3-f1010bf836de"
},
{
...
}
]
}
我的api方法:
[Route("api/admin/UnitsOfMeasure/UnitOfMeasureRelatedUnitsCreate")]
[HttpPost]
[ResponseType(typeof(UnitsOfMeasure.UnitsOfMeasureDataWithMessage))]
public IHttpActionResult UnitOfMeasureRelatedUnitsCreate(UnitsOfMeasure.UnitOfMeasureRelatedUnitDataInbound UnitOfMeasureRelatedUnitDataInbound)
{
UnitsOfMeasure _oUnitsOfMeasure = new UnitsOfMeasure();
return Ok(_oUnitsOfMeasure.UnitOfMeasureRelatedUnits_Create(UnitOfMeasureRelatedUnitDataInbound));
}
我的数据类:
public class UnitOfMeasureRelatedUnitDataInbound
{
public string Name { get; set; }
public Nullable<bool> Active { get; set; }
public Nullable<Guid> UnitOfMeasureTypeID { get; set; }
public Nullable<Guid> BaseUnitID { get; set; }
public string BaseUnitName { get; set; }
public string BaseUnitAbbreviation { get; set; }
public Nullable<int> RelatedUnitDisplayOrder { get; set; }
public string RelatedUnitName { get; set; }
public string RelatedUnitAbbreviation { get; set; }
public Nullable<double> RelatedUnitConversionRatio { get; set; }
public Nullable<Guid> UnitOfMeasureSetID { get; set; }
}
到目前为止,我已经尝试了List<...>
并没有列表,唯一传入的是null数据。
那么我需要使用哪种数据类型?
答案 0 :(得分:0)
看起来你需要:
var UnitOfMeasureRelatedUnitData = new List<UnitOfMeasureRelatedUnitDataInbound>()
您可能还需要向我们展示Ok()的实现,以便我们可以看到您如何序列化数据。
以下是一些代码,向您展示我的意思https://dotnetfiddle.net/Ty4WrI
答案 1 :(得分:0)
您必须确保API Method和JSON数组中的参数名称相同。例如,如果您的方法签名是 public IHttpActionResult UnitOfMeasureRelatedUnitsCreate(UnitsOfMeasure.UnitOfMeasureRelatedUnitDataInbound _unitOfMeasureRelatedUnitDataInbound){...}
那么Json对象应该是, {&#34; _unitOfMeasureRelatedUnitDataInbound&#34;:[ { &#34;姓名&#34;:&#34;测试&#34;, &#34;活跃&#34;:是的, &#34; UnitOfMeasureTypeID&#34;:&#34; dd89f0a0-59c3-49a1-aaae-7e763da32065&#34;, &#34; BaseUnitID&#34;:&#34; 4da30098-3574-4a0c-a07f-c185ef34defe&#34;, &#34; BaseUnitName&#34;:null, &#34; BaseUnitAbbreviation&#34;:null, &#34; RelatedUnitDisplayOrder&#34;:1, &#34; RelatedUnitName&#34;:&#34; Foot&#34;, &#34; RelatedUnitAbbreviation&#34;:&#34; ft&#34;, &#34; RelatedUnitConversionRatio&#34;:12, &#34; UnitOfMeasureSetID&#34;:&#34; 12a7c55a-6dcd-7261-c9e3-f1010bf836de&#34; }, { ... } ] }
答案 2 :(得分:0)
API调用:
<?php
$emailSubject = 'Customer Has a Question!';
$webMaster = 'admin@princosoft.com';
$name = $_POST['iname'];
$email = $_POST['iemail'];
$phone=$_POST['iphone'];
$question = $_POST['imessage'];
echo $name;
$body = <<<EOD
<br><hr><br>
Name: $name <br>
Email: $email <br>
Questions: $question <br>
EOD;
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($webMaster, $emailSubject, $body, $headers);
$theResults = <<<EOD
EOD;
echo "$theResults";
?>
<div class="col-lg-12">
<form name="sentMessage" action="/index.php" method="post" id="contactForm" novalidate >
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input type="text" name="iname" class="form-control"
placeholder="Your Name *"
id="name"
required data-validation-required-message="Please enter your name.">
<?php $name = $_POST['iname']; ?>
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="email" name="iemail" class="form-control"
placeholder="Your Email *" id="email"
required data-validation-required-message="Please enter your email address.">
<?php $name = $_POST['iemail']; ?>
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="tel" name="iphone"
class="form-control"
placeholder="Your Phone *" id="phone"
required data-validation-required-message="Please enter your phone number.">
<?php $name = $_POST['iphone']; ?>
<p class="help-block text-danger"></p>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<textarea class="form-control"name="imessage" placeholder="Your Message *"
id="message"
required data-validation-required-message="Please enter a
message.">/textarea>
<?php $name = $_POST['imessage']; ?>
<p class="help-block text-danger"></p>
</div>
</div>
<div class="clearfix"></div>
<div class="col-lg-12 text-center">
<div id="success"></div>
<button type="submit" name="isubmit" class="btn btn-xl">Send Message</button>
</div>
</div>
</form>
这只返回第一条记录,但它可能是朝着正确方向迈出的一步。
修改强>
使用以下代码:
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
[Route("api/admin/UnitsOfMeasure/UnitOfMeasureRelatedUnitsCreate")]
[HttpPost]
[ResponseType(typeof(UnitsOfMeasure.UnitsOfMeasureDataWithMessage))]
public IHttpActionResult UnitOfMeasureRelatedUnitsCreate([FromBody] JObject UnitOfMeasureRelatedUnitDataInbound)
{
var json = "[" + JsonConvert.SerializeObject(UnitOfMeasureRelatedUnitDataInbound) + "]";
List<UnitsOfMeasure.UnitOfMeasureRelatedUnitDataInbound> plist = JsonConvert.DeserializeObject<List<UnitsOfMeasure.UnitOfMeasureRelatedUnitDataInbound>>(json);
return Ok();
}
现在我得到了所有元素。