转载 未设置[FromForm]致使未能接收到值

原文: https://www.bilibili.com/read/cv14662792/

环境:前端是微信小程序,后端是.net6 webApi

前端代码:

wx.request({
url: app.globalData.serverHttpUrl + "/Comment/",
 method: "DELETE",
 data: {CommentId: e.currentTarget.dataset.commentid, },
header: {'content-type': 'application/x-www-form-urlencoded'},
success: (res) => {}
})

后端代码:

[HttpDelete]
public async Task<JsonResult> DeleteAsync([FromForm] int CommentId)
 {
    if (await _DataCommentRep.DelOneByIdAsync(CommentId) < 1){
       return new JsonResult(new VMResult<string>() { ResultCode = -1, ResultMsg = "S:删除失败", ResultEntity = null }); }
      return new JsonResult(new VMResult<string>() { ResultCode = 0, ResultMsg = "S:删除成功", ResultEntity = null });
  }

注:如后端不使用 “[FromForm]” 则 CommentId 值始终为 0 即取不到值。

此外,需注意后端为 DELETE或GET时,前端如不使用URL传值的方式,应设:

'content-type': 'application/x-www-form-urlencoded'


拓展学习:

 《x-www-form-urlencoded表示什么意思》https://www.jianshu.com/p/a82a9f003e8b

 《[FromBody]与[FromForm]区别》https://www.cnblogs.com/SmallChen/p/17321789.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Element UI 的表单组件 `<el-form>` 中,你可以通过设置 `:validate-on-rule-change="false"` 来禁用在规则改变时自动触发校验。这样,当表单项的值改变时,校验结果不会立即消失,而是等待用户手动提交表单或者手动触发校验时才会更新校验结果。 示例代码: ```html <template> <el-form :model="form" :rules="rules" :validate-on-rule-change="false"> <el-form-item label="用户名" prop="username"> <el-input v-model="form.username" @change="handleInputChange('username')"></el-input> </el-form-item> <el-form-item label="密码" prop="password"> <el-input type="password" v-model="form.password" @change="handleInputChange('password')"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="handleSubmit">提交</el-button> </el-form-item> </el-form> </template> <script> export default { data() { return { form: { username: '', password: '' }, rules: { username: [ { required: true, message: '用户名不能为空', trigger: 'blur' }, { min: 3, max: 10, message: '用户名长度为 3 到 10 个字符', trigger: 'blur' } ], password: [ { required: true, message: '密码不能为空', trigger: 'blur' }, { min: 6, max: 20, message: '密码长度为 6 到 20 个字符', trigger: 'blur' } ] } }; }, methods: { handleInputChange(field) { // 手动触发校验 this.$refs.form.validateField(field); }, handleSubmit() { this.$refs.form.validate((valid) => { if (valid) { // 表单校验通过,提交表单数据 console.log(this.form); } else { // 表单校验通过,提示用户错误信息 this.$message.error('表单校验通过,请检查输入!'); } }); } } }; </script> ``` 在上述示例中,我们将 `validate-on-rule-change` 属性设置为 `false`,并且在表单项的值改变时手动触发校验。当用户点击提交按钮时,我们再次手动触发表单校验,以确保最终提交的数据符合校验规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值