欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

08. 输入Model和防止重复Post 要点 有大用

image.png


image.png


通过 alt+enter 快捷键创建一个action

image.png


image.png



image.png


image.png


image.png


image.png

image.png

image.png


里面有自动生成的访止跨站请求伪造的代码

image.png



HttpPost 

JsonConvert 类的 SerializeObject 方法转换成 json string字符串

JsonConvert.SerializeQbject(student )

image.png



image.png


image.png



接口里加上Add 方法

ctrl+f12 到它的实现类

image.png


image.png


image.png



image.png

image.png


image.png



image.png



image.png



没有新添加的数据?因为我们注册容器的时候,生命周期是Scoped


image.png


Scoped时,每次http请求的时候,都会创建一个新的实例,所以跳回到新的页面时,都是新的请求,

image.png

我们改为 Singleton

image.png





image.pngimage.png

此时有了新添加的student

image.png

再添加一个学生

image.png


F5刷新一下,就是重新提交一下表单

image.png

id变为6了,

image.png


刷新几次,发现多了几个student

image.png


post 后 重定向到 get,刷新就不会添加了

image.png





用nameof(Detail),不用"Detail",有利于重构,,,,,new {id = newModel.Id}是匿名类


image.png

image.png



再添加学生post提交后,刷新就不会继续增加student了

image.png

image.png

保存后 url 不一样了,所以刷新不会再增加数据了

image.png









普通分类: