adding data to database with MVC 4



am正在尝试使用表单向数据库添加一些数据。

我已经有了一些数据,并设法使编辑工作,但添加我有点问题。

这是我编辑数据库中数据的编辑代码:

   [HttpPost]
    public ActionResult Save(M2Portal.Areas.Admin.Models.Users.Roles roleForm)
        {
            try
        {
            if (ModelState.IsValid)
            {
                if (Mode == "Add")
                {  
                   ****This is where my add code goes*******
               }
                else
                {
                    var role = Srvctx.Roles.FirstOrDefault(w => w.RoleID == roleForm.RoleId);
                    role.RoleName = roleForm.RoleName;
                    role.RoleDescription = roleForm.RoleDescription;
                    Srvctx.SubmitChanges();
                }
                return RedirectToAction("RoleManagement");
            }
           return RedirectToAction("RoleManagement");
        }
        catch (Exception e)
        {
           return RedirectToAction("RoleManagement");
        }

}

这是型号的代码:

这是添加的。

   public Roles()
    {
        Mode = "Add";
        RoleId = 0;
        RoleDescription = "";
        RoleName = "";
        CustomerBlacklist = new List<vw_RoleCustomerBlacklist>();
    }

这是为了编辑:这是有效的。

    public Roles(int roleId)
    {
        Mode = "Edit";
        //RoleId = roleId;
        RoleId = roleId;
        RoleName = _m2Sctx.Roles.Where(s => s.RoleID == RoleId).Select(c => c.RoleName).FirstOrDefault();
        RoleDescription = _m2Sctx.Roles.Where(s => s.RoleID == RoleId).Select(c => c.RoleDescription).FirstOrDefault();
        CustomerBlacklist = _m2Sctx.vw_RoleCustomerBlacklists.Where(s => s.RoleId == roleId).ToList();
        CustName = CustName;

    }

因此,现在我正在使用添加功能,该功能存在问题。

在表单中添加新数据…任何想法:

   if (Mode == "Add")
                {  
                   ****This is where my add code goes*******
               }

你可以看到我的编辑是如何设置的,但添加它完全不同,我很难对它进行定义。。。

尝试以下代码:

 if (ModelState.IsValid)
        {
            if (roleForm.RoleId == 0)
            {  
               var role = new Role()
               {
                  RoleName = roleForm.RoleName,
                  RoleDescription = roleForm.RoleDescription
               };

Srvctx.Roles.InsertOnSubmit(role);   
            Srvctx.SubmitChanges();
            }
            else
            {
                var role = Srvctx.Roles.FirstOrDefault(w => w.RoleID == roleForm.RoleId);
                role.RoleName = roleForm.RoleName;
                role.RoleDescription = roleForm.RoleDescription;
                Srvctx.SubmitChanges();
            }
            return RedirectToAction("RoleManagement");
        }

用于编辑模型而非

public Roles(int roleId)
    {
        Mode = "Edit";
        //RoleId = roleId;
        RoleId = roleId;
        RoleName = _m2Sctx.Roles.Where(s => s.RoleID == RoleId).Select(c => c.RoleName).FirstOrDefault();
        RoleDescription = _m2Sctx.Roles.Where(s => s.RoleID == RoleId).Select(c => c.RoleDescription).FirstOrDefault();
        CustomerBlacklist = _m2Sctx.vw_RoleCustomerBlacklists.Where(s => s.RoleId == roleId).ToList();
        CustName = CustName;

    }

创建一个基于roleId:返回Role的单个对象的方法

    public M2Portal.Areas.Admin.Models.Users.Roles Roles(int roleId)
        {
            var roleDBEntity = _m2Sctx.Roles.FirstOrDefault(s => s.RoleID == RoleId);
    var roleModelEntity = new M2Portal.Areas.Admin.Models.Users.Roles(){
        RoleId = roleDBEntity.RoleId,
        RoleName = roleDBEntity.RoleName,
        RoleDescription = roleDBEntity.RoleDescriptio
        CustomerBlacklist = roleDBENtity.CustomerBlacklist // Assuming there's relation between Role and CustomerBlackList table
};
    return roleModelEntity;
        }
var newRole = new Role {
    RoleName = roleForm.RoleName,
    RoleDescription = roleForm.RoleDescription
};
Srvctx.Roles.InsertOnSubmit(newRole);

假设您的"角色"实体类名为Role。此外,如果CustomerBlacklist是"Role"类的一部分,您也可以填充它。

最新更新