上篇已经说到HTML代码和弹出模态框的代码,但是保存(是在视图的,通过视图传送到控制器)和控制器的代码还没讲;如下便是讲这两个。
所谓的保存便是,我们在上篇的那张修改效果图中的,把那些信息给修改,然后将其数据通过保存的代码传送到控制器中,然后控制器根据传过来的数据进行查重等等一些步骤通过后,将其修改保存到数据库中,保存成功后再将其数据返回控制器中,控制器再将其返回页面,进行显示;
保存代码(视图)
//保存数据 新增、修改
function saveForm() {
var roleId = $("#roleId").val();
var userName = $("#userName").val().trim();
var idCard = $("#idCard").val().trim();
var telephone = $("#telephone").val().trim();
var address = $("#address").val().trim();
var email = $("#email").val().trim();
var account = $("#account").val().trim();
var password = $("#password").val().trim();
//var effective = $("#effective").val().trim();
var userId = $("#userId").val();
if (roleId == 0) {
layer.alert("请选择角色")
return false;
}
if (userName == 0) {
layer.alert("请填写姓名")
return false;
}
if (idCard == 0) {
layer.alert("请填写身份证号码")
return false;
}
if (telephone == 0) {
layer.alert("请填写电话号码")
return false;
}
if (address == 0) {
layer.alert("请填写居住地址")
return false;
}
if (email == 0) {
layer.alert("请填写电子邮箱")
return false;
}
if (account == 0) {
layer.alert("请填写账号")
return false;
}
if (password == 0) {
layer.alert("请选择密码")
return false;
}
var url = "";
if (bl) {
url = "/Library/S_User/IndexRole";
} else {
url = "/Library/S_User/UpdateRole"
}
$.post(url, {
roleId: roleId,
userName: userName,
idCard: idCard,
telephone: telephone,
address: address,
email: email,
account: account,
password: password,
userId:userId,
}, function (msg) {
layer.alert(msg.Text);
if (msg.Text) {
$("#specialtyModal").modal("hide")
tabSearchRole();
}
})
}
不过,在修改前还得做一些准备工作,在弹出修改模态框的时候,我们就要把需要修改的账号的原有的数据查询出来,然后进行修改,就如上篇的效果图,它便是通过数据回填,然后把原有的数据回填上,回填的代码也在上篇的代码里面;
控制器篇
1、数据回填
数据回填是根据ID查询数据然后进行回填的,代码如下:
public ActionResult SelectS_User(int UserId)
{
try
{
var User = myModel.S_User.Where(m => m.userId == UserId).Single();
return Json(User, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return Json(null, JsonRequestBehavior.AllowGet);
throw;
}
}
如上便是回填的控制器代码;
2、修改,保存到数据库
通过页面传过来的数据进行与数据库比较和查询是否有重复等等一些操作后,如果没问题仅通过,代码,如下:
public ActionResult UpdateRole(S_User modS_User)
{
ReturnJson msg = new ReturnJson();
if (modS_User.roleId > 0)
{
if (!string.IsNullOrEmpty(modS_User.userName))
{
if (IdCardHelper.CheckIdCard(modS_User.idCard))
{
if (!string.IsNullOrEmpty(modS_User.telephone))
{
if (!string.IsNullOrEmpty(modS_User.address))
{
if (!string.IsNullOrEmpty(modS_User.email))
{
if (!string.IsNullOrEmpty(modS_User.account))
{
if (!string.IsNullOrEmpty(modS_User.password))
{
int oldS_User = myModel.S_User.Count(o => o.roleId == modS_User.roleId
&& o.userName == modS_User.userName || o.telephone == modS_User.telephone || o.email == modS_User.email || o.account == modS_User.account);
if (oldS_User == 0)
{
//modS_User.foundTime = DateTime;
modS_User.effective = true;
//myModel.S_User.Add(modS_User);
myModel.Entry(modS_User).State = System.Data.Entity.EntityState.Modified;
if (myModel.SaveChanges() > 0)
{
msg.state = true;
msg.Text = "修改用户成功";
}
else
{
msg.Text = "修改用户失败";
}
}
else
{
msg.Text = "姓名/联系方式/电子邮箱/账号已存在";
}
}
else
{
msg.Text = "请输入密码";
}
}
else
{
msg.Text = "请输入账号";
}
}
else
{
msg.Text = "请输入电子邮箱";
}
}
else
{
msg.Text = "请输入居住地址";
}
}
else
{
msg.Text = "请输入联系方式";
}
}
else
{
msg.Text = "请输入身份证号";
}
}
else
{
msg.Text = "请输入姓名";
}
}
else
{
msg.Text = "请选择角色";
}
return Json(msg, JsonRequestBehavior.AllowGet);
}
上面便是修改,保存的控制器的代码
今天的分享就这些,没有别的!