C# 如何从JavaScript到homecontroller获取价值?
我的项目中有一个计时器,当我停止它时,计时器值应该保存到数据库中,但我无法从JavaScript获取计时器值到homecontroller 我的JavaScript是:C# 如何从JavaScript到homecontroller获取价值?,c#,javascript,asp.net-mvc,C#,Javascript,Asp.net Mvc,我的项目中有一个计时器,当我停止它时,计时器值应该保存到数据库中,但我无法从JavaScript获取计时器值到homecontroller 我的JavaScript是: <script type="text/javascript"> document.getElementById("starttime").innerHTML = ((hour<=9) ? "0"+hour : hour) + " : " + ((min<=9) ? "0" + min : min) +
<script type="text/javascript">
document.getElementById("starttime").innerHTML = ((hour<=9) ? "0"+hour : hour) + " : " + ((min<=9) ? "0" + min : min) + " : " + sec;
.
.
.
.
.
</script>
<script type="text/javascript">
$(document).ready(function () {
$("#End").click(function () {
$.ajax({ url: '/Home/SaveAnsDetails?classs=' + ($("#txtClass").val())
+ '&ExamDate=' + ($("#ExamDate").val())
+ '&ddd=' + ($("#starttime").val()),<!--timer value starttime is passed to ddd-->
type: "Post",
dataType: "json",
success: function (message) {
alert(message);
}
});
});
});
</script>
<div id="starttime" style="font-size:large; "></div>
document.getElementById(“starttime”).innerHTML=((小时)
类型:“Post”,
数据类型:“json”,
成功:功能(消息){
警报(信息);
}
});
});
});
你的ajax调用是错误的。查看位于的文档,特别是查找向服务器发送数据部分
$.ajax({
url:
'/Home/SaveAnsDetails?classs=' + ($("#txtClass").val())
+ '&ExamDate=' + ($("#ExamDate").val())
+ '&ddd=' + ($("#starttime").val()),<!--timer value starttime is passed to ddd-->
type: "Post",
dataType: "json",
success: function (message) {
alert(message);
}
});
在控制器中,您需要指定[HttpPost]
属性,以便能够区分POST
请求和GET
请求
您不会将模型传递给控制器。相反,您使用传递给它的数据在控制器内实例化模型类的对象。通过POST
请求,您可以访问保存数据的FormCollection
。将该方法与该方法结合使用,将值写入模型。控制器的外观如下所示:
[HttpPost]
public ActionResult SaveAnsDetails(FormCollection collection)
{
var model = new ModelGridAllFeatures();
TryUpdateModel(model, new string[]
{
"classs",
"ExamDate",
"ddd"
}, collection.ToValueProvider());
}
您还可以将POST
请求与GET
请求相结合。您将向控制器传递另一个参数,并编辑ajax请求,以便在请求url中相应地使用该参数。请尝试以下代码:
$(document).ready(function () {
$("#End").click(function () {
$.ajax({ url: '/Home/SaveAnsDetails',
data: {'classs': $("#txtClass").val(),
'ExamDate': $("#ExamDate").val(),
'ddd':$("#starttime").text()
},
type: "Post",
dataType: "json",
contentType:'application/json',
success: function (message) {
alert(message);
}
});
});
});
变化:
若您需要它的post请求,那个么为什么要通过URL参数发送数据,而不是在正文中发送它呢
如果需要“Json”,则还需要相应地指定“contentType”
“starttime”是div元素,要获得它的值,正确的方法是使用text()jquery方法
我不确定这个参数“ModelGridAllFeatures model”,但是您是否相应地得到Examdate的值?我仍然无法得到timer(ddd)的值…我认为在显示timer值的地方出现了一些问题..+'&ddd='+($(“#starttime”).val())没有得到值..有什么想法吗。。。
[HttpPost]
public ActionResult SaveAnsDetails(FormCollection collection)
{
var model = new ModelGridAllFeatures();
TryUpdateModel(model, new string[]
{
"classs",
"ExamDate",
"ddd"
}, collection.ToValueProvider());
}
$(document).ready(function () {
$("#End").click(function () {
$.ajax({ url: '/Home/SaveAnsDetails',
data: {'classs': $("#txtClass").val(),
'ExamDate': $("#ExamDate").val(),
'ddd':$("#starttime").text()
},
type: "Post",
dataType: "json",
contentType:'application/json',
success: function (message) {
alert(message);
}
});
});
});