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

Web ページから、次のようなことができます。

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

サービスが有効な数値を返すまで、クライアントがサービスを叩き続けないようにするため、サーバー上で数値の生成を行います。

この特定の部分の実装に問題がある場合は、お気軽に質問を更新してください。

于 2013-06-05T10:29:52.083 に答える