使用Jquery和MVC将值插入数据库

时间:2016-12-15 17:03:08

标签: c# jquery asp.net-mvc

我创建了一个表单,可以将少量数据插入到数据库中。我正在使用jquery在我的mvc项目中插入数据,但我对如何创建插入函数感到困惑。

首先,我创建了一个通过ID插入或更新记录的方法。但我不知道如何使用Id作为主要内容来检查是否插入或更新。我知道如果我的ID等于0意味着插入或大于0然后更新但是如何将其添加到我的函数中。其次,我知道我的插入功能似乎不是正确的方法,但可以更容易实现?

(查看)的.asmx

<script type="text/javascript">
    $(document).ready(function() {
        //function will be called on button click having id btnsave
        $("#btnRoleListSubmit").click(function() {
            $.ajax({
                type: "POST", //HTTP POST Method
                url: '/Admin.mvc/Admin/InsertRoleList', // Controller/View   
                data: { //Passing data  
                    Name: $("#Name").val(), //Reading text box values using Jquery
                    Role: $("#Role").val(),
                }
            });
        });
    });
</script>

    <table align="center">
        <tr>
            <td valign="top" width="100" class="col-label">
                <span>Name</span>
            </td>
            <td class="col-label">
                <input type="text" maxlength="200" style="margin-left: 0;" name="Name" id="Name"
                    class="required" value="" />
            </td>
        </tr>
        <tr>
            <td valign="top" class="col-label">
                Employee Role
            </td>
            <td class="col-label">
                <textarea id="Role" name="Role" class="required" cols="15" rows="2"></textarea>
            </td>
        </tr>
    </table>
    <hr />
    <div style="margin: 12px;" align="center">
        <button type="submit" name="btnRoleListSubmit" class="actionButton">
            <span>Add Employee Role</span></button>
    </div>

(控制器)的.cs

  public ActionResult InsertRoleList(int branchId, RoleListViewModel obj)
    {
        AddDetails(branchId, obj);

        return View();
    }

     private void AddDetails(int branchId, EmailListViewModel obj)
    {

    Branch branches = this._branches.GetID(branchId);
    var GetDB = branches.GetClientDatabase();
    RoleListViewModel listData = new RoleListViewModel();
    {
        listData.Name= obj.Name;
        listData.Role= obj.Role;
    };

    List<int> lstIds = GetDB.InsertorUpadateRole(obj);
    }

SqlQueries.cs

public List<int> InsertorUpadateRole (RoleList obj)
    {
        RoleList lstData = new RoleList();
        string sqlQuery = string.Empty;
        sqlQuery = @"INSERT INTO [dbo].[EmployeeRoleList]
                    ([name],
                    [is_active],
                    [role],
                    [is_admin]
                    }
                    VALUES ( '{0}','1','{2}','0')
                    SELECT SCOPE_IDENTITY() AS id;";
        try
        {

            this.ExecuteReader((record) =>
            {
                Name = Convert.ToInt32(record["name"]);
                Role = Convert.ToInt32(record["role"]);
            },
            string.Format(sqlQuery, lstdata.Name, lstdata.Role));


        }
        catch (Exception e)
        {
            var message = e;
        }
    }

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您的网址通常以控制器开头,请尝试&#34; / Admin / InsertRoleList&#34;。你的ajax post参数需要匹配控制器InsertRoleList(string Name,string Role),它与你的控制器代码不太相似......