在MVC-3(Razor Engine)中:我想在一个名为NextAvailable
的按钮上生成随机字符串,但条件是在生成随机字符串之前,在SQL数据库中查看它是否已生成。如果已存在于数据库中,则生成新字符串。
请有人帮帮我...
这是我生成randon字符串的代码:
<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>
答案 0 :(得分:1)
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;
}
还在主控制器或控制器中使用参数创建“检查字符串存在”操作方法。
在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);
}