为了账号安全,请及时绑定邮箱和手机立即绑定

使用“如果 API 中已经存在”类型语句

使用“如果 API 中已经存在”类型语句

C#
慕雪6442864 2021-11-28 18:38:42
我有一个我创建的 API。我(终于)设法用它 GET 和 POST 。现在我想在提交之前检查 POST。我有一个具有id, name, city, state, 和属性的类(这是正确的词吗?我还在学习行话)country。我有一个带有按钮的表单,该按钮有一个单击事件方法,如下所示:protected void submitButton_Click(object sender, EventArgs e){    void Add_Site(string n, string ci, string s, string co)    {        using (var client = new HttpClient())        {            site a = new site            {                name = n,                city = ci,                state = s,                country = co            };            var response = client.PostAsJsonAsync("api/site", a).Result;            if (response.IsSuccessStatusCode)            {                Console.Write("Success");            }            else                Console.Write("Error");        }    }    Add_Site(nameText.Text, cityText.Text, stateText.Text, countryText.Text);}现在,在这一点上,它按预期工作。但是,我想限制它。我想做的是让它看看nameText.Text价值。在它运行该POST语句之前,我希望它查看GETAPI中的其他值并确保该名称不存在。虽然我知道我可能会更新数据库以使该name字段唯一,但我更愿意在 C# 中以编程方式进行。这在我的 C# 代码中是可能的吗?如果是这样,我将使用什么函数以及如何让它返回Site.Name属性来比较我的nameText.Text值?编辑:这是POST其中一条评论中要求的代码。注意:这是在我添加控制器时由 Visual Studio 自动生成的。    // POST: api/site    [ResponseType(typeof(site))]    public IHttpActionResult Postsite(site site)    {        if (!ModelState.IsValid)        {            return BadRequest(ModelState);        }        db.site.Add(site);        db.SaveChanges();        return CreatedAtRoute("DefaultApi", new { id = site.id }, site);    }我什至不知道从哪里开始添加“如果名称已经存在,则抛出错误”,因此某种演练就足够了。
查看完整描述

1 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

如果任何站点具有提供的名称 (site.Name),这里是在数据库中查找的代码:

if (db.site.Any(o => o.Name == site.Name))
    return BadRequest("Name already exists.");


查看完整回答
反对 回复 2021-11-28
  • 1 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信