ASP.NET Core – Razor Pages 冷知识
Multiple Form Binding 问题
在一个 page 里面有 2 张 form, 那么就会有 2 个 model binding. 当任何一个 submit 的时候.
由于 2 个 model 都属于 page, 检测 model valid 的时候 2 个都会检查. 当然其中 1 个肯定是 invalid 的咯.
这就是它的问题了.
Razor Pages - Model validation fails due to multiple objects sharing parameters
How to implement two forms with separate BindProperties in Razor Pages?
没有什么 right way.
方案1: 用 ViewComponent 封装 form, 这样就可以隔离开了. 缺点就是麻烦.
方案2: 用 FluentValidation API 来做 validation, 而不是 ModelState.IsValid. (我目前就用这招)
Form Handler 覆盖掉 Query Params
当有 set asp-page-handler 的时候, post url 会加上 ?handler="HandlerName", 但它不会携带当前的其它 query params.
github issue: Adding asp-page-handler to Razor Page button removes query parameters from being submitted
这个是 "by design".
解决方案是: 自己补上像携带的 query params, 比如 asp-route-foo='@HttpContext.Request.Query["foo"]'. 如果只是 1, 2 个已知 params 那就还算可控, 如果多的话这个方案就不够用了. 需要更多的工作.
ASP.NET Core – Razor Pages 冷知识的更多相关文章
- ASP.NET Core Razor Pages
Razor 页面是Asp.Net Core2.0新增的一个功能.Razor 页面是 ASP.NET Core MVC 的一个新特性,它可以使基于页面的编码方式更简单高效. 环境:vs2017 .net ...
- ASP.NET Core Razor Pages 初探
最近新建 Asp.net Core MVC 项目的时候不小心选错了个模板,发现了一种新的项目模板.它使用cshtml视图模板,但是没有Controller文件夹.后来才发现这是ASP.NET Core ...
- ASP.NET Core - Razor页面之Handlers处理方法
简介 在前一篇文章中,我们讨论了Razor页面.今天我们来谈谈处理方法(Handlers). 我们知道可以将代码和模型放在 .cshtml 文件里面或与 .cshtml 匹配的 .cshtml.cs ...
- ASP.NET Core:Pages
ylbtech-ASP.NET Core:Pages 1.返回顶部 1._Layout.cshtm <!DOCTYPE html> <html> <head> &l ...
- .NET Core Razor Pages中ajax get和post的使用
ASP.NET Core Razor Pages Web项目大部分情况下使用继承与PageModel中的方法直接调用就可以(asp-page),但是有些时候需要使用ajax调用,更方便些.那么如何使用 ...
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
C#编译器优化那点事 使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的.优化代码 ...
- C#中的函数式编程:递归与纯函数(二) 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
C#中的函数式编程:递归与纯函数(二) 在序言中,我们提到函数式编程的两大特征:无副作用.函数是第一公民.现在,我们先来深入第一个特征:无副作用. 无副作用是通过引用透明(Referential ...
- ASP.NET Core - Razor 页面简介
简介 随着ASP.NET Core 2 即将来临,最热门的新事物是Razor页面.在之前的一篇文章中,我们简要介绍了ASP.NET Core Razor 页面. Razor页面是ASP.NET Cor ...
- ASP.NET Core Razor中处理Ajax请求
如何ASP.NET Core Razor中处理Ajax请求 在ASP.NET Core Razor(以下简称Razor)刚出来的时候,看了一下官方的文档,一直没怎么用过.今天闲来无事,准备用Rozor ...
- 学习ASP.NET Core Razor 编程系列一
一. 概述 .NET Core 1.0发布的时候就想进行学习的,不过根据微软的以往的发布规律1.0版可以认为是大众测试版,2.0才算稳定.现在2.1都已经发布了预览版,之前对其"不稳定&qu ...
随机推荐
- 全网最适合入门的面向对象编程教程:20 类和对象的 Python 实现-组合关系的实现与 CSV 文件保存
全网最适合入门的面向对象编程教程:20 类和对象的 Python 实现-组合关系的实现与 CSV 文件保存 摘要: 本文主要介绍了在使用 Python 面向对象编程时,如何实现组合关系,同时对比了组合 ...
- Django--StreamingHttpResponse下载文件
from django.shortcuts import render, HttpResponse from django.http import StreamingHttpResponse impo ...
- 封装的grid控件
class CGridCtrl : public CWnd { DECLARE_DYNAMIC(CGridCtrl) public: void Create(CWnd* pParent, DWORD ...
- 基于.NET开源、强大易用的短链生成及监控系统
前言 今天大姚给大家分享一个基于.NET开源(MIT License).免费.强大易用的短链生成及监控系统:SuperShortLink. 项目介绍 SuperShortLink是一个基于.NET开源 ...
- Linux podman容器实验
要求 1.登录到指定的镜像仓库拉取镜像 2.以普通用户contsvc运行 3.配置 systemd-journald 服务,要求永久保留日志数据(物理机,创建文件mkdir /var/log/jour ...
- 测试工程师-年终总结PPT
2022年年终总结-xxx 一.首页 2022年年终总结暨2023年工作计划 汇报人:测试组-xxx 日期: 2023.1.13 二.目录 1.年度工作概述 2.工作亮点展示 3.持续精进点 4.明年 ...
- 5、SpringBoot2之整合Durid
创建名为springboot_druid的新module,过程参考3.1节 5.1.引入相关依赖 注意:虽然本文使用的是 spring boot 2.7.18 和 MySQL 5.7 ,但是出于可移植 ...
- 对国内的人行机器人(humanoid)的一些技术类的提问?
贵公司产品在机器人仿真时具体采用的仿真软件(NVIDIA家的.开源的webot,等等)是哪款,如果没有使用NVIDIA全家桶那么其原因是什么(如:技术依赖没有独立技术.技术栈太过于复杂暂时没有精力和能 ...
- Jax框架的显存分析已经不支持gperftools,而是支持go语言下的新版本pprof
官方: https://jax.readthedocs.io/en/latest/device_memory_profiling.html
- Python报错:performance hint: av/logging.pyx:232:5: the GIL to be acquired
参考: https://stackoverflow.com/questions/77410272/problems-installing-python-av-in-windows-11 https:/ ...