在 MVC-3(Razor 引擎)中:我想在单击名为 NextAvailable
的按钮时生成随机字符串,但条件是在生成随机字符串之前查看 SQL 数据库,该字符串已经生成或不。如果数据库中已经存在,则生成一个新字符串。
有人可以帮我吗...
这是我生成随机字符串的代码:
<script type="text/javascript">
function btnNextAvailable_OnClick() {
$("#nextAvailableButtonClick.val('true')");
var mode = $.hash.getValue("m");
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
}
</script>
最佳答案
function btnNextAvailable_OnClick() {
var randomstring=GenerateRandonString();
while(IsRandomStringExists(randomstring))
{
document.getElementById("SequentialId").value = randomstring
}
document.getElementById("SequentialId").value = randomstring
}
function IsRandomStringExists(randomstring)
{
$.get('Home/CheckStringExists/'+randomstring ,function(response)
{
if(response=="true")
{
return true;
}else
{
return false;
}
});
}
function GenerateRandonString()
{
$("#nextAvailableButtonClick.val('true')");
var mode = $.hash.getValue("m");
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);
return randomstring;
}
同时在 Home Controller 或带参数的 Controller 中创建“CheckStringExists”ActionMethod。
在 HomeController 中
public JsonResult CheckStringExists(string id)
{
//Write database logic here
return Json((object)"true", JsonRequestBehavior.AllowGet);
}
在 HomeController 中
public JsonResult CheckStringExists(string id)
{
var customer = ObjectContext.Companies.OfType<TrueTracEntities.Customer>().Where(r => r.SequentialId.Equals(id)).FirstOrDefault();
return Json((object)"true", JsonRequestBehavior.AllowGet);
}
关于javascript - 生成随机字符串并检查数据库以确保不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16911761/