javascript - ASP.NET Web API 中的表单
问题描述
我的 Web API 中的表单有问题。表格非常简单。用户输入一个字符串,控制器接收该字符串并将其插入到带有 id 的数据库中。与数据库的连接有效,我可以安全地读取它。
编辑 这是控制器中的代码。 编辑 2这是正确且有效的控制器
public ActionResult PostMyData(string json)
{
try
{
var newEntry = new Questions() { Id = json.Id, Question= json.Question};
context.Questions.Add(newEntry);
context.SaveChanges();
return Ok();
}
catch (Exception e)
{
return BadRequest();
}
}
这是 HTML 页面的一部分。编辑 这是不返回错误的更新脚本。 编辑 2这是正确且有效的脚本
<script language="Javascript">
$(document).on('click', '#submitButt', function () {
var myquestion = $('#question').val();
var json = {
Id : 1,
Question: myquestion
}
$.ajax({
type: "POST",
url: "api/Simple",
data: JSON.stringify(json),
dataType: "json",
contentType:"application/json",
success: function (data) {
alert(data);
},
error: function (data) {
alert("An Issue has occured");
}
});
})
</script>
解决方案
关于您的方案,您可以执行以下操作:
<input type="text" id="question" name="question" />
<input type="button" id="submitBtn" name="submitBtn" value="Send"/>
<script>
$(document).on('click', '#submitBtn', function () {
var myquestion=$('#question').val();
var json = {
myquestion: myquestion
};
$.ajax({
type: 'POST',
url: "api/Simple/PostMyData",
dataType: "json",
data: JSON.stringify(json),
contentType: "application/json",
success: function (data) {
alert(data);
},
error: function (data) {
alert("An Issue has occured");
}
});
})
</script>
你的Controller
遗嘱看起来像:
using System.Web.Script.Serialization;
[HttpPost]
public ActionResult Post([FromBody] string json)
{
var serializer = new JavaScriptSerializer();
dynamic jsondata = serializer.Deserialize(json, typeof(object));
//Get your variables here from AJAX call
var myquestion= jsondata["myquestion"];
try
{
var newEntry = new Question() { Id = 1, Question= myquestion};
context.Question.Add(newEntry);
context.SaveChanges();
return Ok();
} catch (Exception e)
{
return BadRequest();
}
}
推荐阅读
- python - 在非零的嵌套列表python中查找产品
- java - Android {Java} 中的 XML 解析
- matplotlib - 如何使用 seaborn 或 matplotlib 将 barplot 中条的中间顶部与一条线连接起来?
- java - 无法从我的数据库中显示名称
- javascript - 如何避免 HTML 画布上出现锯齿状的省略号?
- mysql - 如何拥有一个具有计算值的 MySQL 表列
- testing - 空手道工具:如何进行 rest api kerberised 调用/SPNEGO 身份验证?
- django - Django Rest Framework + django_filters 对序列化值
- vue.js - Vuex数据可用后如何调用方法?
- java - G Suite账号获取报告java样题