唯一的随机字符串在MVC3剃刀

本文关键字:MVC3 剃刀 字符串 随机 唯一 | 更新日期: 2023-09-27 18:16:55

我想在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
  }

唯一的随机字符串在MVC3剃刀

可以这样实现:

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);
});

你只是不希望你的客户端一直敲打服务,直到服务返回一个有效的数字,所以你在服务器上生成数字。

现在,如果您在执行此特定部分时遇到问题,请随时更新您的问题。