javascript - 如何使用 javascript 通过 AJAX 调用访问我的数据库?

标签 javascript asp.net ajax asp.net-mvc

我对这方面很陌生,所以请多多包涵。

我正在使用 ASP.NET MVC。

我已经创建了一个叠加层来在有人单击与某个数据库条目对应的按钮时覆盖页面。因此,我用于此功能的所有代码都在我的项目中包含的 .js 文件中。

我需要做的是使用 AJAX 调用从数据库本身提取与我的条目相对应的信息,并将其放入我的文本框中。然后,在最终用户做出所需更改后,我需要更新该条目的值以匹配输入。我已经在网上冲浪了一段时间,但未能找到有效满足我需求的示例。

到目前为止,这是我在 javascript 文件中的代码:

function editOverlay(picId) {
      //pull up an overlay
      $('body').append('<div class="overlay" />');
      var $overlayClass = $('.overlay');

      $overlayClass.append('<div class="dataModal" />');
      var $data = $('.dataModal');

      overlaySetup($overlayClass, $data);


      //set up form
      $data.append('<h1>Edit Picture</h1><br /><br />');

      $data.append('Picture name: &nbsp;');
      $data.append('<input class="picName" /> <br /><br /><br />');

      $data.append('Relative url: &nbsp;');
      $data.append('<input class="picRelURL" /> <br /><br /><br />');

      $data.append('Description: &nbsp;');
      $data.append('<textarea class="picDescription" /> <br /><br /><br />');

      var $nameBox = $('.picName');
      var $urlBox = $('.picRelURL');
      var $descBox = $('.picDescription');

      var pic = null; 

//this is where I need to pull the actual object from the db
      //var imgList = 
      for (var temp in imgList)  {
          if (temp.Id == picId) {
              pic= temp;
              }
          }

  /*
      $nameBox.attr('value', pic.Name);
      $urlBox.attr('value', pic.RelativeURL);
      $descBox.attr('value', pic.Description);
  */

      //close buttons
      $data.append('<input type="button" value="Save Changes" class="saveButton" />');
      $data.append('<input type="button" value="Cancel" class="cancelButton" />');


      $('.saveButton').click(function() {
          /*
          pic.Name = $nameBox.attr('value');  
          pic.RelativeURL = $urlBox.attr('value');
          pic.Description = $descBox.attr('value');
          */

          //make a call to my Save() method in my repository

          CloseOverlay();
      });

      $('.cancelButton').click(function() {
          CloseOverlay();
      });
  }

我注释掉的内容是我需要完成的和/或在解决之前的问题之前不可用。

感谢任何和所有建议!请记住,我对这些东西非常陌生(准确地说是两周),可能需要非常明确的说明。

顺便说一句:overlaySetup() 和 CloseOverlay() 是我在其他地方使用的函数。

谢谢!

最佳答案

您不能(也不应该)直接从 Javascript 连接到数据库。即使理论上你可以(我想没有什么是不可能的)你也不应该;你必须以一种让任何致力于安全的人在他们完成自己的工作后把你的头发拉出来的方式向公众开放数据库。

您应该做的是找到一些可以充当数据库代理的中介。如果这是一个足够好的提示,几乎与 ASP.NET 的方式相同。

如果不是:

创建自定义 ASP.NET 控件并让它在服务器端填充您的表单数据。对其回发句柄进行验证,然后在服务器端 更新数据库。

关于javascript - 如何使用 javascript 通过 AJAX 调用访问我的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3040249/

相关文章:

javascript - 如何在 JSON 对象中向 JStree 插件的子级添加 href 链接?

javascript - 在 Firefox 中使用 javascript 关闭窗口

javascript - 多步 jquery div 不显示数据

javascript - 错误 : [$compile:nonassign] Expression 'undefined' used with directive 'myFacebook' is non-assignable

c# - 滚动时修复 gridview 标题

javascript - 如何让图片库部分显示 "AJAX Loading.gif"? (jQuery)

javascript - 在弧形内弯曲折线图

ASP.Net - 命名容器和 ClientIDMode ="Static"

c# - 关于代码放置的变量问题

javascript - 如何使用 React 在客户端向外部站点发出 AJAX GET 请求