0
我正在開發MVC應用程序。如何防止重複數據的保存?
我在Creat-Veiw中使用Jquery來驗證數據。
我正在添加角色並檢查該角色(或者您可以說UserName)是否已經存在於數據庫中。 如果Role已經存在,那麼應該顯示驗證消息,並且不應允許添加到db中(不應允許保存)。
我有一個接受角色的文本框,我已經檢查了模糊函數是否已經存在角色。
每件事情都很好,如果角色已經存在,那麼驗證信息就會出現。 但點擊保存按鈕後,它保存在分貝。
我想阻止它?這個怎麼做 ?
我有下面的代碼創建視圖。
@model IEnumerable<PaymentAdviceEntity.Role>
<div id="roleList">
<div class="span6">
<div class="span12 HeaderField2">
Roles
<legend style="margin-bottom:2px;margin-top:5px;"></legend>
</div>
<div class="span12">
<div style="display:inline-block"></div>
<div id="addrole" style="display:none">
<span> @Html.TextBox("RoleName", String.Empty, new { @id = "RoleName",style="margin-bottom:0px;" })</span>
<span>
<input type="button" value="Save" id="btnSave"/>
<input type="button" value="Cancel" id="btnCancel" />
</span>
</div>
<div style="margin-top:5px;">
<span id="RoleNameValidation" style="display:none;color:Red;">Role already exists</span>
</div>
</div>
</div>
爲此,我使用下面的jquery。
$("#RoleName").blur(function()
{
var Role_Name = $('#RoleName').val();
//alert(RoleName);
var url = "@Html.Raw(Url.Action("checkForUniqueName","Role",new {@RName = "RoleName"}))";
url = url.replace("RoleName", Role_Name);
$.post(url, function (data)
{
if (data == false) {
$("#RoleNameValidation").show();
$('#RoleName').focus();
}
else {
$("#RoleNameValidation").hide()
}
});
});
和控制器代碼是....
public ActionResult checkForUniqueName(string RName)
{
bool Valid = false;
var RoleList = from e in db.Roles
where e.Name.Equals(RName)
select e;
if (RoleList.Count() > 0)
{
Valid = false;
}
else
{
Valid = true;
}
return Json(Valid, JsonRequestBehavior.AllowGet);
}
驗證的信息,那就找好幫助jQuery驗證插件自定義規則...但仍錄得到保存... – Nil 2013-03-16 06:46:06
請確保您在表格中附上此表單並在提交時驗證表單,如果表單有效,那麼只需執行控制器操作 – Cris 2013-03-16 07:48:36
您應該檢查執行保存操作的控制器以及使用jQuery驗證 – 2013-03-16 08:22:39