0

我想在 MVC3-Razor-C#.net 中生成一个随机的 3 位字符串。但条件是,在生成随机字符串之前,我需要检查数据库,即 SQL 2008,这条记录是否已经存在。如果随机生成的字符串已经存在于数据库中,我需要生成新的字符串。此功能适用于名为“NextAvailable”的按钮。我能够使用 JavaScript 生成随机字符串,但如果数据库已经存在,则无法检查它。如果有任何帮助我解决这个问题,那就太好了。

Here is my Javascript function which is working fine, but how to check database using AJAX for existence of a string.

 function btnNextAvailable_OnClick() {
  $("#nextAvailableButtonClick.val('true')");
  var chars = "0123456789";
  var stringLength = 3;
  var randomstring = '';
  for (var i = 0; i < stringLength; i++) {
  var rnum = Math.floor(Math.random() * chars.length);
  randomstring += chars.substring(rnum, rnum + 1);
  }
  document.getElementById("SequentialId").value = randomstring
  }
4

1 回答 1

2

你可以像这样实现它:

MVC:

public class RandomNumberController : Controller 
                 // Or take a look at ApiController
{
    public ActionResult GetRandomNumber()
    {
        string number = new RandomNumberGenerator().GetNextFreeRandomNumber();
        return Json(new { number = number}, JsonRequestBehavior.AllowGet);
    }
}

数据库逻辑:

public class RandomNumberGenerator
{
    public string GetNextFreeRandomNumber()
    {
        // do database calls, return next free random number            
        return "042";
    }
}

现在从您的网页中,您可以执行以下操作:

$.get('/RandomNumber/GetRandomNumber', function(data) {
    alert(data.number);
});

您只是不希望您的客户端在服务返回有效数字之前一直敲击服务,因此您在服务器上生成数字。

现在,如果您在实施其中的特定部分时遇到问题,请随时更新您的问题。

于 2013-06-05T10:29:52.083 回答