C# 写入数据库而不进行后期/刷新
我构建了一个包含HTML表单和Google地图的HTML/Javascript页面。提交后,Javascript代码运行一些计算,更新一个表,并在Google地图上放置一个pin。这是所有运行客户端和工作没有问题 我的挑战是,当按下Submit时,我希望将数据读写到SQL Server,并运行客户端Javascript 我有一个正在工作的ASP.NET/C#/Razor页面,该页面正在写入数据库并与客户端Javascript交互,但是,它仅在发布表单时调用。我希望数据库交互在没有页面刷新的情况下工作 哪种技术最适合实现这一点?不管它是什么,它必须能够被我的客户端Javascript调用C# 写入数据库而不进行后期/刷新,c#,asp.net,asp.net-mvc,razor,C#,Asp.net,Asp.net Mvc,Razor,我构建了一个包含HTML表单和Google地图的HTML/Javascript页面。提交后,Javascript代码运行一些计算,更新一个表,并在Google地图上放置一个pin。这是所有运行客户端和工作没有问题 我的挑战是,当按下Submit时,我希望将数据读写到SQL Server,并运行客户端Javascript 我有一个正在工作的ASP.NET/C#/Razor页面,该页面正在写入数据库并与客户端Javascript交互,但是,它仅在发布表单时调用。我希望数据库交互在没有页面刷新的情况下
提前欢呼使用
ajax
。只需导入JQuery,然后:
$.ajax({
type: "POST",
url: '/example/test',
data: { number: 3 },
success: function(data) {
alert(data);
}
});
关于C#:
在控制器上:
public class ExampleController : Controller
{
public ActionResult Test(YourObject input)
{
return input.Number.ToString();
}
}
输出将如下所示:
通过将数据从客户端传递到控制器,您可以根据需要使用它来更新数据库,还可以将任何数据返回到客户端。使用
ajax
。只需导入JQuery,然后:
$.ajax({
type: "POST",
url: '/example/test',
data: { number: 3 },
success: function(data) {
alert(data);
}
});
关于C#:
在控制器上:
public class ExampleController : Controller
{
public ActionResult Test(YourObject input)
{
return input.Number.ToString();
}
}
输出将如下所示:
通过将数据从客户端传递到控制器,您可以根据需要使用它来更新数据库,还可以将任何数据返回到客户端。使用XMLHttpRequest。它不会刷新页面。 aolse,你可以这样做:
<form action="action" method="post" target="hide_frame">
</form>
<iframe name="hide_frame" src="" id="hide_frame">
</iframe>
使用XMLHttpRequest。它不会刷新页面。 aolse,你可以这样做:
<form action="action" method="post" target="hide_frame">
</form>
<iframe name="hide_frame" src="" id="hide_frame">
</iframe>
您可以通过几个步骤解决此问题 1.创建一个json对象来表示您的数据 2.创建一个javascript函数,在客户端执行以发布数据 3.创建一个c#模型,将数据序列化为 4.创建一个c#controller以接受数据的post 5.使用实体框架或ADO.NET调用数据访问提供程序 希望这有帮助!干杯
<script>
// declare the object
var data = {};
// add data
data.Id = 1;
data.Name = 'Test';
// make json string
var json = JSON.stringify(data);
$('#some_button').click(function(){
// make ajax call
$.ajax({
type: 'post',
url: 'http://localhost/api/Data',
data: json,
contentType: "application/json",
success: function(result) {
// check response for status codes
},
error: function(error) {
// check for error
}
});
});
</script>
创建一个控制器来处理post请求和更新数据库
using Data.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web.Http;
namespace Data.Controllers
{
public class DataController : Controller
{
// some data access provider using entity framework or ADO.NET
DataProvider provider;
public DataController()
{
provider = new Provider ();
}
[HttpPost]
public IActionResult PostData([FromBody]Item data)
{
provider.Add(data);
return Ok();
}
}
}
您可以通过几个步骤解决这个问题 1.创建一个json对象来表示您的数据 2.创建一个javascript函数,在客户端执行以发布数据 3.创建一个c#模型,将数据序列化为 4.创建一个c#controller以接受数据的post 5.使用实体框架或ADO.NET调用数据访问提供程序 希望这有帮助!干杯
<script>
// declare the object
var data = {};
// add data
data.Id = 1;
data.Name = 'Test';
// make json string
var json = JSON.stringify(data);
$('#some_button').click(function(){
// make ajax call
$.ajax({
type: 'post',
url: 'http://localhost/api/Data',
data: json,
contentType: "application/json",
success: function(result) {
// check response for status codes
},
error: function(error) {
// check for error
}
});
});
</script>
创建一个控制器来处理post请求和更新数据库
using Data.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web.Http;
namespace Data.Controllers
{
public class DataController : Controller
{
// some data access provider using entity framework or ADO.NET
DataProvider provider;
public DataController()
{
provider = new Provider ();
}
[HttpPost]
public IActionResult PostData([FromBody]Item data)
{
provider.Add(data);
return Ok();
}
}
}
您可以使用如下所示的控制器表单集合在服务器端冷发布数据 Javascript:
var request = new XMLHttpRequest();
request.open("POST", "Controller/Action");
request.send(new FormData(formData));
C#
您可以使用如下所示的控制器表单集合在服务器端冷发布数据 Javascript:
var request = new XMLHttpRequest();
request.open("POST", "Controller/Action");
request.send(new FormData(formData));
C#
您应该使用AJAX您应该使用AJAX。有关AJAX的更多信息,请参阅。您应该使用AJAX您应该使用AJAX。有关AJAX的更多信息,请参阅。