Asp.net 使用免费jqgrid发布数据,客户端和Web API端的代码是什么?

Asp.net 使用免费jqgrid发布数据,客户端和Web API端的代码是什么?,asp.net,asp.net-web-api,jqgrid,Asp.net,Asp.net Web Api,Jqgrid,我正在使用ASP.NETMVC6WebAPI。在我使用的视图中 让我们借钱来证明我的目的。我们已经把桌子拿出来了 接下来,我将添加新的供应商。请通知数据库中存在主键id(标识列)。我们不希望它显示在屏幕上。 在VendorRespository.cs中,我将新供应商添加为 public void AddVendor(Vendor item) { using (VendorDataContext dataContext = new VendorDataContex

我正在使用ASP.NETMVC6WebAPI。在我使用的视图中 让我们借钱来证明我的目的。我们已经把桌子拿出来了

接下来,我将添加新的供应商。请通知数据库中存在主键id(标识列)。我们不希望它显示在屏幕上。

VendorRespository.cs
中,我将新供应商添加为

    public void AddVendor(Vendor item)
    {
        using (VendorDataContext dataContext = new VendorDataContext())
        {
            dataContext.Database.Connection.ConnectionString = DBUtility.GetSharedConnectionString(
                "http://centralized.admin.test.com");
            var newVendor = dataContext.Vendors.Create();
            newVendor.Company = item.Company;
            newVendor.ContactName = item.ContactName;
            newVendor.ContactPhone = item.ContactName;
            newVendor.UserName = item.UserName;
            newVendor.UserKey = item.UserKey;
            newVendor.Active = item.Active;
            newVendor.FacilityId =item.FacilityId;
            newVendor.ClientID = item.ClientID;
            dataContext.SaveChanges();
        }
    }
我的问题是:

  • 不确定剧本是什么样的

    <script>
       API_URL = "/VendorManagement/";
       function updateDialog(action) {
          return {
              url: API_URL
              , closeAfterAdd: true
              , closeAfterEdit: true
              , afterShowForm: function (formId) { }
              , modal: true
              , onclickSubmit: function (params) {
                  var list = $("#jqgrid");
                  var selectedRow = list.getGridParam("selrow");
                  rowData = list.getRowData(selectedRow);
                  params.url += rowData.Id;
                  params.mtype = action;
              }
              , width: "300"
          };
      }
    
    jQuery("#jqgrid").jqGrid('navGrid',
        { add: true, edit: true, del: true },
        updateDialog('PUT'),
        updateDialog('POST'),
        updateDialog('DELETE')
    );
    
    
    API_URL=“/VendorManagement/”;
    函数updateDialog(操作){
    返回{
    url:API_url
    ,closeAfterAdd:true
    ,closeAfterEdit:true
    ,余波形式:函数(formId){}
    ,模态:真的
    ,onclickSubmit:function(参数){
    风险值列表=$(“#jqgrid”);
    var selectedRow=list.getGridParam(“selrow”);
    rowData=list.getRowData(selectedRow);
    params.url+=rowData.Id;
    params.mtype=操作;
    }
    ,宽度:“300”
    };
    }
    jQuery(“#jqgrid”).jqgrid('navGrid'),
    {add:true,edit:true,del:true},
    updateDialog('PUT'),
    updateDialog('POST'),
    updateDialog('DELETE')
    );
    

  • 在控制器中,不确定代码是什么

      // POST
      public HttpResponseMessage PostVendor(Vendor item)
     {
        _vendorRespository.AddVendor(item);
        var response = Request.CreateResponse<Vendor>(HttpStatusCode.Created, item);
        string uri = Url.Link("DefaultApi", new { id = item.Id });
        response.Headers.Location = new Uri(uri);
        return response;
     }
    
    //POST
    公共HttpResponseMessage PostVendor(供应商项目)
    {
    _供应商回复。添加供应商(项目);
    var response=Request.CreateResponse(HttpStatusCode.Created,item);
    字符串uri=Url.Link(“DefaultApi”,新的{id=item.id});
    response.Headers.Location=新Uri(Uri);
    返回响应;
    }
    
    我的代码有许多编译错误,例如

  • “HttpRequest”不包含“CreateResponse”的定义和最佳扩展方法重载“HttpRequestMessageExtensions.CreateResponse(HttpRequestMessage,HttpStatusCode,Vendor)”需要“HttpRequestMessage”类型的接收器

    请帮助我摆脱错误和不适当的代码

    编辑:


    我从

    中借用了代码片段,我需要添加如下代码

     [Microsoft.AspNet.Mvc.HttpGet]
        public dynamic GetVendorById(int pkey)
        {
    
            return null;
        }
    

    //POST
    [System.Web.Http.HttpPost]
    公共HttpResponseMessage PostVendor(供应商项目)
    {
    _供应商回复。添加供应商(项目);
    var response=Request.CreateResponse(HttpStatusCode.Created,item);
    字符串uri=Url.Link(“/VendorManagement/GetVendorById”,new{id=item.pkey});
    response.Headers.Location=新Uri(Uri);
    返回响应;
    }
    
    有关错误,请检查@techspider,是。我使用
    Controller
    而不是
    ApiController
    。那么,如何更改我的代码呢?请尝试更改class@techspider,我改了。而我的代码是借用的。还有什么我必须改变的?@Love:如果你用创建数据库表的SQL脚本来准备演示会更好。您可以将演示项目上传到某个地方(例如GitHub),我将对其进行修改。
     // POST
        [System.Web.Http.HttpPost]
        public HttpResponseMessage PostVendor(Vendor item)
        {
            _vendorRespository.AddVendor(item);
            var response = Request.CreateResponse<Vendor>(HttpStatusCode.Created, item);
            string uri = Url.Link("/VendorManagement/GetVendorById", new { id = item.pkey });
            response.Headers.Location = new Uri(uri);
            return response;
        }