唯一的随机字符串在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
}
可以这样实现:
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);
});
你只是不希望你的客户端一直敲打服务,直到服务返回一个有效的数字,所以你在服务器上生成数字。
现在,如果您在执行此特定部分时遇到问题,请随时更新您的问题。