我想在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
}
答案 0 :(得分: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);
});
您只是不希望您的客户端在服务返回有效号码之前继续锤击服务,因此您在服务器上执行号码生成。
现在,如果您在实施特定部分时遇到问题,请随时更新您的问题。