Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 写入数据库而不进行后期/刷新_C#_Asp.net_Asp.net Mvc_Razor - Fatal编程技术网

C# 写入数据库而不进行后期/刷新

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交互,但是,它仅在发布表单时调用。我希望数据库交互在没有页面刷新的情况下

我构建了一个包含HTML表单和Google地图的HTML/Javascript页面。提交后,Javascript代码运行一些计算,更新一个表,并在Google地图上放置一个pin。这是所有运行客户端和工作没有问题

我的挑战是,当按下Submit时,我希望将数据读写到SQL Server,并运行客户端Javascript

我有一个正在工作的ASP.NET/C#/Razor页面,该页面正在写入数据库并与客户端Javascript交互,但是,它仅在发布表单时调用。我希望数据库交互在没有页面刷新的情况下工作

哪种技术最适合实现这一点?不管它是什么,它必须能够被我的客户端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的更多信息,请参阅。