将简单类型从HTML表单发送到ASP API

时间:2017-09-12 12:54:26

标签: c# html asp.net-web-api

我在从表单向ASP API发送简单的双号时遇到了麻烦。

当我提交表单时,我首先需要删除“提交”按钮以避免发送冗余的“提交=提交”#39; API控制器的价值。

正如我在this文章中所读到的,我将输入字段的名称设置为空。因此,如果我在开发者模式下检查http请求,则发送数据的主体看起来像是' =值'。我的方法参数用[FromBody]属性修饰。

即使有了这一切,控制器方法也无法获得该值。它总是零。

怎么办?

我的表格如下:

 <form action="@Url.Action("Temperature","Api")" method="post" >
       <input type="number" name=" " step="0.25"/>
       <input type="submit" name="submit" />
   </form>
</div>

<script>
    $("form").submit(function () {
        $(this).children('[name="submit"]').remove();
    });
</script>

控制器:

    // POST: api/Temperature
    public void Post([FromBody]double value) //FormDataCollection data
    {            
        Temperature newEntry = new Temperature() { Timestamp = DateTime.Now, Value = value};
        try
        {
            db.Temperatures.Add(newEntry);
            db.SaveChanges();
        }
        catch(Exception e)
        {
            Debug.WriteLine(e.Message);
        }

    }

1 个答案:

答案 0 :(得分:1)

尝试Ajax ......

像这样改变你的Html:

C:\boost
C:\Program Files\boost\boost_1_65_1\libs
C:\Program Files\boost\boost_!_65_1\boost
C:\MinGW\lib\gcc\mingw32\5.3.0\include\c++

然后:

.ct-chart .ct-label.ct-horizontal.ct-end {
  transform: translate(-15px, 15px) rotate(315deg);
  white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    display: block;
    width: 50px !important;
}

您的控制器输入参数也将如下:

 <div>
       <input type="number" id="number" name=" " step="0.25"/>
       <input type="button" id="submit" name="submit" />
</div>