使用AngularJS将记录添加到带有标识列的SQL Server表中

时间:2015-08-05 01:01:22

标签: sql-server asp.net-mvc

我有一个使用AlgularJS并连接到SQL Server 2008数据库的ASP.NET MVC应用程序。我有这两个表:

MODEL

model_id int IDENTITY(1,1) not null,
model_desc nvarchar(200)

MODEL_SPEC

model_spec_id int IDENTITY(1,1) not null,
model_id int not null,
model_spec_desc nvarchar(200)

在我的应用中,添加新模型时,我在同一页面上有一个规格列表。为了保存规格,我需要先保存模型。将模型记录插入模型表后,如何获取model_id

我在.net中的现有功能看起来像这样(显然没有返回model_id):

 public int CreateModel(model mdl)
 {
        bool result = true;

        _context.models.Add(mdl);
        result = _context.SaveChanges() > 0;

        if (result)
        {
            return mdl.model_id;
        }
        else
        {
            return -1;
        }
    }

下面是我的Angular函数,用于发布创建模型的请求:

this.addModel = function (mdl) {
    var userObj = { "model_id": mdl.model_id, "model_desc": mdl.model_desc }
    return $http({
            url: '/models/CreateModel/',
            method: "POST",
            data: userObj
        });
    };

1 个答案:

答案 0 :(得分:0)

您可以从控制器返回包含模型ID的JsonResult。它可能看起来像这样:

public class ModelController : Controller
{
    private readonly IModelRepository _modelRepository;

    public ModelController(IModelRepository modelRepository)
    {
        _modelRepository = modelRepository;
    }

    [HttpPost]
    public ActionResult Create(Model mdl)
    {
        var modelId = _modelRepository.CreateModel(mdl);

        return Json(modelId);
    }
}

然后,您可以通过执行以下操作来访问角度代码中的结果:

this.addModel(model).then(function(result){
    $scope.modelId = result;
})