ASP.NET Web API项目如何在收到post请求时上传某一项数据为默认值? 5C

比如我再用户信息页面,收到用户新建信息的请求,想获取用户的ID并上传。用户ID这一项不想让用户输入

2个回答

public string Get(int id = -1)
{
if (id == -1)
表示用户没有传这个参数,那么进一步处理
}

weixin_39017744
weixin_39017744 回复操作员马善福(贵阳专业挖机): 就是我系统里的id。有一个数据表单需要他们的id做为外键,我不想让用户输入这个id,直接后台抓取上传。
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复weixin_39017744: 你说的id是什么意思,不是你系统里,是第三方的?
一年多之前 回复
weixin_39017744
weixin_39017744 我是想直接禁止用户输入这一项,然后抓来他们的id上传
一年多之前 回复

最好就不提供相应的字段映射,比如不需要用户输入 ID 则接收模型中就不提供 ID 字段/属性

如:

public class CreateViewModel
{
    public string Name { get; set;}
    public DateTime Birthday { get; set;} 
}

[HttpPost]
public IActionResult Create([FromBody]CreateViewModel model)
{
    // do creating...  model 中不包含 ID 信息,用户就不能输入
}
weixin_39017744
weixin_39017744 等下另一个问题的解决了才能试试这边问题的解决方案,测试通过了都给采纳。嘿嘿
一年多之前 回复
roczj
公主的卫兵 回复weixin_39017744: 居然不给悬赏
一年多之前 回复
weixin_39017744
weixin_39017744 回复公主的卫兵: 我觉得可能身份验证没通过,又开了一个关于身份验证的问题
一年多之前 回复
roczj
公主的卫兵 回复weixin_39017744: 应该是 User.Identity.GetUserId() 获取到的数据为 NULL吧, 如果实在要在模型中包含 Name 属性可以使用 JsonIgnore 特性忽略映射。
一年多之前 回复
weixin_39017744
weixin_39017744 回复公主的卫兵: [ResponseType(typeof(Information))] public IHttpActionResult PostInformation(Information information) { if (!ModelState.IsValid) { return BadRequest(ModelState); } information.Name=User.Identity.GetUserId(); db.Informations.Add(information); db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = information.Id }, information); } 我试了这样写,然后在postman身份验证那边选了basic auth。输入账号密码并发送post请求后,显示Name值为null。话说有没有办法能让某一项变得无法输入?
一年多之前 回复
roczj
公主的卫兵 回复weixin_39017744: Create方法就是 Controller 的 Action, 只需要在 Action 获取用户的 ID 就可以了啊!!!
一年多之前 回复
weixin_39017744
weixin_39017744 我问的是web api的controller啊。。。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问