模型绑定是ASP.NET MVC和(来自.NET 4.5)ASP.NET WebForms的一项功能,它通过使用请求数据创建强类型对象来简化控制器操作。
在 POST 请求上使用 FromRoute 属性绑定后,属性为 null
我有一个用 [HttpPost] 属性装饰的端点。 此端点 url 应具有来自路由本身的输入对象属性之一,但所有其他属性应来自
HTTP GET 控制器操作和 ModelState.IsValid
多年来我读过的有关 ASP.NET MVC 的几乎所有文献都将 ModelState.IsValid 描述为仅在 HTTP POST 操作方法中发挥作用的东西。我明白这是约定...
有没有办法让 ASP.NET Core 模型绑定器使用私有 setter 设置属性?
我使用 ASP.NET Core 最小 API,并尝试让我的视图模型(传入客户端数据映射到的位置)为其属性使用私有设置器。 但我发现绑定一旦停止工作......
Web Api 参数绑定:snake_case 到camelCase
我正在一个新的Web api项目上做一些工作,我的方法/参数遵循标准的c#命名格式;方法名是PascalCase,参数是camelCase。 不幸的是我只是
如何在asp.net core中启用转义JSON字符串解析?
当我使用转义的 JSON 字符串向端点发送请求时,它会抛出异常“JSON 值无法转换为 Test.TestClass 。 Path: $ | LineNumber: 0 | BytePositionInLine: 90...
FromBody 不会忽略 POST 上用 JsonIgnore 修饰的属性
我正在构建一个控制器,该控制器应该通过请求的主体接收工作流类型,但它不尊重 JsonIgore 属性并引发模型验证错误,其中显示: “名字……
我正在使用最新的 .NET Framework 和 VS 2019 开发 ASP.NET MVC 应用程序。 在我的页面中,我有一个简单的文本框和一个搜索按钮。当我单击搜索按钮并回发表单时,在
ASP.NET Core MVC 中 ViewModel 的模型绑定不起作用
当我将模型发送回控制器时,模型实例返回时所有属性均为空。 这是具有一些属性的 ViewModel,包括 SelectList 和模型实例。 公共...
有没有比隐藏输入字段更安全的替代方法来在 POST 请求中保留属性?
我遇到了一个问题,即由于忘记在我的 标签内添加隐藏字段,我的 CRUD 应用程序中的发布请求导致数据丢失。例如,我有一个 UserModel,它有一个 我遇到了一个问题,即由于忘记在我的 <form> 标签内添加隐藏字段,我的 CRUD 应用程序中的发布请求导致数据丢失。例如,我有一个 UserModel,它具有 DateCreated 属性,理想情况下不应在创建记录后更新该属性。但我的 CRUD 应用程序内的后续更新导致我的 UserModel 的 DateCreated 字段被设置为 NULL。这是因为在我的 Razor 页面中没有 <input asp-for="Input.DateCreated" hidden /> 标签可以跨 POST 请求保留 DateCreated 的值。我犹豫是否接受解决此问题的最佳方法只是记住为您不想更新的每个字段添加隐藏的输入标记。仅仅记住这样做似乎是不必要的风险和糟糕的设计。 一些示例代码: <form method="post"> <input asp-for="AspNetUsersId" hidden /> <input asp-for="Input.DateCreated" hidden /> <div class="mb-2"> <label asp-for="Input.Email" class="form-label">Email:</label> <input asp-for="Input.Email" type="email" class="form-control form-control-sm" /> <span asp-validation-for="Input.Email" class="text-danger form-text"></span> </div> <div class="mb-2"> <label asp-for="Input.FirstName" class="form-label">First Name:</label> <input asp-for="Input.FirstName" class="form-control form-control-sm" /> <span asp-validation-for="Input.FirstName" class="text-danger form-text"></span> </div> <div class="mb-2"> <label asp-for="Input.LastName" class="form-label">Last Name:</label> <input asp-for="Input.LastName" class="form-control form-control-sm" /> <span asp-validation-for="Input.LastName" class="text-danger form-text"></span> </div> </form> 想到的一个解决方案是开始使用 DTO 进行更新,它根本不包含 DateCreated 字段,并且只需要将 Id 属性包含在隐藏字段中,但后来我遇到了一个问题,我必须进行后续查询以获取 UserModel 的其余属性,然后相应地映射它们并将其传递给我的 Update 方法。 或者,我可以编写另一个接受 UpdateUserDto 的更新方法。 使用隐藏输入标签是跨发布请求保留模型属性的最佳方法还是这个问题是更大的架构问题的结果? 如果您希望将所有属性都包含在 SQL 更新命令中,则 DbContext.Update 方法非常合适。但是,如果您只想启用对实体中某些属性的修改,建议的解决方案是将实体附加到上下文,然后指定可能已修改的属性。这样,只有这些字段才会包含在生成的 SQL 更新命令中。 context.Attach(myEntity); context.Entry(myEntity).Property(x => x.Name).IsModfied = true; context.Entry(myEntity).Property(x => x.Description).IsModfied = true; await context.SaveChangesAsync(); 在隐藏字段中包含其他属性值并不是一个好主意,因为例如熟悉浏览器开发工具的用户可以修改它们。或者任何可以制作 HTTP 请求的人。
我有一个列表作为名为“Person”的模型类中的字段 在此输入图像描述 我已在 Program.cs 文件中全局启用自定义人员模型绑定器 在此输入图像描述 斯...
我正在尝试使用从查询参数到对象的模型绑定来进行搜索。 我的搜索对象是 [数据合同] 公开课标准 { [DataMember(名称 = "名字")] 公共字符串
.net 8 Blazor Web assembly 中复杂模型的表单绑定
我有一个复杂的模型,我想在表单中发布,但它没有被绑定。只有第一层有数据。 Model.Items 和后续的 item.Items 不会被绑定。组件是相互作用的...
ASP.NET Core 将 Null 参数传递给控制器端点
使用模型绑定器可以将 NULL 复杂类型传递到控制器端点。 该解决方案并不适用于所有控制器端点,重建模型也不是直截了当的......
我的视图中有一张表格,如下所示。列表 Model.SchoolList 有 2 条记录,并且正在按预期显示。下面是我的代码的简化版本。 模型类: 公开课SchoolVie...
访问 ASP.NET Core 控制器中的 ViewModel 属性
我一直在关注有关基本 CRUD 操作的 EF 核心教程,但在从 ViewModel 获取数据时遇到问题。 我正在遵循他们推荐的使用 TryUpdateModel 的做法(或在...
将 Entity Framework Core 模型绑定到 ASP.NET Core 控制器中的操作方法
我有一个具有多种操作方法的 ASP.NET Core 控制器。每个操作方法都有一个 {id} 路径参数,并在几乎每个请求中执行以下操作: [HttpPost("action1/{id}")] 公开
将实体核心模型绑定到asp.net core控制器中的控制器操作
我有一个具有多个操作的 asp.net core 控制器。每个操作都有一个 {id} 路径参数,并在几乎每个请求中执行以下操作。 [HttpPost("action1/{id}")] 公共异步任务<
如何使模型在多个操作和视图中保持活动状态?这样中间就不会丢失参数值。我怀疑我在模型绑定中犯了一些基本错误。 例如, 我有一个模特 p...
如何将 json 转换为 Laravel Eloquent 模型?
如果我有一个名为 Post 的 Eloquent 模型,并且 mysql 表有: 整数 ID, 字符串文本 我如何转换这个 JSon: { post: { text: '我的文字' } } 到相关的 Post 对象,一旦收到...