ASP.NET MVC核心Web POST请求使用NULL值填充数据模型 [英] ASP.NET MVC Core Web POST Request populating Data Model with NULL values
问题描述
场景
我正在建立一个博客,并正在配置一个页面以将编辑后的评论发布到MsSql服务器。
问题
在我提交提交表单POST之后,通过我的视图,应该捕获并通过此表单返回的属性值全部返回为 NULL!由于我的数据模型中存在NULL值,最终将导致异常错误。在浏览完整个应用程序并使用Fiddler之后,我无法诊断问题。
快速可视化示例
< blockquote>
提交 POST
后(运行时),并且我的应用程序已到达 Home Controller 在我的博客上,这是显示和可用的内容。
注意:如您所见,每个输入的该值在运行时由Home Controller捕获。但是,此数据不会在 POST
后发送到 EditComment 方法。
进程
使用我的模型的属性值填充输入控件,然后提交:
EditComments.cs
@model MpComment
... HTML内容...
< form asp-controller = Home asp-action = EditComment method = post类=文本危险输入表单>
< div asp-validation-summary = ModelOnly>< / div>
< div class = form-group>
< label asp-for =< Model.Property> class = control-label>< / label>
< input asp-for =< Model.Property> class = form-control />
< span asp-validation-for =< Model.Property> class = text-danger>< / span>
< / div>
... ASP表单输入元素...
< div class = form-group input-submit>
< input type = submit value = Submit class = btn material-button />
< / div>
< / form>
我的AppDbContext已初始化
AppDbContext.cs
namespace Portfolio.Data
{
公共类AppDbContext:IdentityDbContext
{
public AppDbContext(DbContextOptions< AppDbContext> options):基本(选项){}
公共虚拟DbSet< MpPost> MpPost {get;组; }
公共虚拟DbSet< MpComment> MpComment {get;组; }
公共虚拟DbSet< MpGuest> MpGuest {获取;组; }
公共虚拟DbSet< MpLogin> MpLogin {get;组; }
公共虚拟DbSet< MpProject> MpProject {get;组; }
}
}
我的MpComments模型开始出现并
使用系统;设置每个属性值,但是填充每个属性的数据为NULL。
使用System.ComponentModel.DataAnnotations;
命名空间Portfolio.Models
{
公共部分类MpComment
{
public int Id {get;组; }
public int Mp_Post_Id {get;组; }
public int Mp_Guest_Id {get;组; }
public string评论{get;组; }
public int?因果报应{get;组; }
public int?已批准{得到;组; }
公共字符串Ip {get;组; }
公共字符串Agent {get;组; }
公共DateTime?创建{get;组; } = DateTime.Now;
公共DateTime?更新{get;组; } = DateTime.Now;
}
}
一旦没有任何填充,则启动Home Controller,并调用以下函数:
HomeController.cs
[HttpPost]
公共异步任务< IActionResult> EditComment(MpComment评论)
{
comment.Id = 0;
_repo.AddComment(comment);
if(await _repo.SaveChangesAsync())
return RedirectToAction( ViewComments);
else
return View(comment);
}
此时是 comment 参数变量从POST填充的值仅包含NULL值,并且显示如下:
调查和分析
VisualStudio
- 局部变量检查器
代理null
批准的null
评论null
创建{6/30/2019 1 :04:29 PM}
Id 0
Ip null
因果报废
Mp_Guest_Id 0
Mp_Post_Id 0
更新{6/30/2019 1:04 :29 PM}
此过程在设置为实现此完全相同功能的其他过程中均按预期工作
例如,这是Fiddler在成功的POST中从几乎相同的POST过程中捕获的内容:
提琴手检查器
- 原始(EditProject成功)
POST https:// localhost:44390 / Home / EditProject / 21 HTTP / 1.1
主机:localhost :44390
连接:保持活动状态
内容-长度:555
缓存控制:max-age = 0
来源:https:// localhost:44390
升级-不安全请求:1
内容类型:application / x-www-form-urlencoded
用户代理:Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 75.0.3770.100 Safari / 537.36
接受:text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp,image / apng ,* / *; q = 0.8,application / signed-exchange; v = b3
推荐人:https:// localhost:44390 / Home / EditProject / 21
Accept-Encoding:gzip,deflate,br
接受语言:EN-US,EN; q = 0.9,MT; q = 0.8
曲奇:.AspNetCore.Antiforgery.x5eNnYCJ5UA = CfDJ8OfA6sTjcU1PuqxxzGM-oMrl1aZfFqqMphsPHMioPYeJIj8tRRSXB1N9Pm7JhspsKDyUKawAVJYkSlP56myEU4qcRohQ1axrDWFXPVvZjlNZqiRZAZVOMcZ3wupV12M_z289E7MaUrZ1nbOzH34eiH0; .AspNetCore.Identity.Application = CfDJ8OfA6sTjcU1PuqxxzGM-oMp2YqORrHzf5IL0rLJ8jvAP-RYvHIXeH63EfD3-TugdZGBP9nf_lHhAn71ACsIQZe_cJ1x7u3FBh25uhlXZIJX9yk7ZdH_GuwfYEe-Zaa1CSAD2f2g8U7syt8jvxy18c-qCN9Yq2zLQpBeOlzftudcaMKKrsA-UGO8BOHLPTk1TYe1QMosDGaFDLXY0POqCpluxiiA0qsA0i9iQeAP6HL7ZC8lLjf76Lf_E5usVyakwa9X3ELDJQeaEFFa5Vi_5063xCHhm3NRREE5loUCff1rKmaOKvvOR-FNF-QtYLG-MGthgVAGah4cdXjD0jsKFBM0Ny-Yt8uRddQ26w_8AUJqhRo9jOAXEuzyhYwPRfKQKykgpy-4lVIZXc2QR25EWxq9H6zh5GGCTIitxISDcpoHf0mUqzT9aJKo_LwB6cibzbDwBmVsTc6Yn6cQA0MMoBVa6E6hKuvQoNerU7psX5z2D2k8tB8mZVlJQ3medeMwHQonOSBh99OxOrBO5K6iedlpPqSNco8r7PbNcHCdhLKehtoyJkE3tzmrv_EOTAS7ldXNhhPHqNp_RmuAdGWlsJ-A-bN5itj1hv_o7RCxl8t49XB9oddsg4iOvR-BUZOLuxJKfQ90PAH4S9BvblwLKoXx3Gt3We5WeG8Ga6rAXHQhd
的ID = 0&安培;名称= Product + Engineer& Desc = nulla + neque + libero + convallis + eget + eleifend& Live_Url = bloglovin.com%2Feget%2Ftincidunt%2Feget.jpg& Github_Repo = sourceforge.net%2Fet%2Fultrices%2Fposuere%Re = 2Fcubilia。 creativecommons.org%2Fpede%2Fli BERO%2Fquis.html和放大器;创建= 2011-07-11T00%3A00%3A00.000和放大器;更新= 2019-06-20T00%3A00%3A00.000和放大器; __ RequestVerificationToken = CfDJ8OfA6sTjcU1PuqxxzGM-oMqTHmlRblU70EY0Ou7tH2IifiXdJOCtMRepfMg-GhKz-j4at6h9BOzJTNjHIROMjDpUiOqxvDeGWcja8K-uGkYrW8DX58j9mIFlwKML9tLVtvusmGmPekVMPxYqRkKdcyLGb6qpav3upDLAvfxLblbs9RynCyG4bDTAAZ4jzxc-WW
提琴手检查器
- 原始(编辑注释失败)
POST https:// localhost:44390 / Home / EditComment / 1 HTTP / 1.1
主机:localhost:44390
连接:keep-alive
内容长度:606
缓存控制:最大年龄= 0
来源:https:// localhost:44390
升级-不安全请求:1
内容类型:application / x-www-form-urlencoded
User-Agent :Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 75.0.3770.100 Safari / 537.36
接受:text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp,image / apng ,* / *; q = 0.8,application / signed-exchange; v = b3
推荐人:https:// localhost:44390 / Home / EditComment / 1
Accept-Encoding:gzip,deflate,br
接受语言:EN-US,EN; q = 0.9,MT; q = 0.8
曲奇:.AspNetCore.Antiforgery.x5eNnYCJ5UA = CfDJ8OfA6sTjcU1PuqxxzGM-oMrl1aZfFqqMphsPHMioPYeJIj8tRRSXB1N9Pm7JhspsKDyUKawAVJYkSlP56myEU4qcRohQ1axrDWFXPVvZjlNZqiRZAZVOMcZ3wupV12M_z289E7MaUrZ1nbOzH34eiH0; .AspNetCore.Identity.Application = CfDJ8OfA6sTjcU1PuqxxzGM-oMp2YqORrHzf5IL0rLJ8jvAP-RYvHIXeH63EfD3-TugdZGBP9nf_lHhAn71ACsIQZe_cJ1x7u3FBh25uhlXZIJX9yk7ZdH_GuwfYEe-Zaa1CSAD2f2g8U7syt8jvxy18c-qCN9Yq2zLQpBeOlzftudcaMKKrsA-UGO8BOHLPTk1TYe1QMosDGaFDLXY0POqCpluxiiA0qsA0i9iQeAP6HL7ZC8lLjf76Lf_E5usVyakwa9X3ELDJQeaEFFa5Vi_5063xCHhm3NRREE5loUCff1rKmaOKvvOR-FNF-QtYLG-MGthgVAGah4cdXjD0jsKFBM0Ny-Yt8uRddQ26w_8AUJqhRo9jOAXEuzyhYwPRfKQKykgpy-4lVIZXc2QR25EWxq9H6zh5GGCTIitxISDcpoHf0mUqzT9aJKo_LwB6cibzbDwBmVsTc6Yn6cQA0MMoBVa6E6hKuvQoNerU7psX5z2D2k8tB8mZVlJQ3medeMwHQonOSBh99OxOrBO5K6iedlpPqSNco8r7PbNcHCdhLKehtoyJkE3tzmrv_EOTAS7ldXNhhPHqNp_RmuAdGWlsJ-A-bN5itj1hv_o7RCxl8t49XB9oddsg4iOvR-BUZOLuxJKfQ90PAH4S9BvblwLKoXx3Gt3We5WeG8Ga6rAXHQhd
Mp_Post_Id = 1&安培; Mp_Guest_Id = 1和注释= lorem + quisque + ut + erat + curabitur + gravida + nisi + at + nibh + in + hac + habitasse + platea + dictumst + aliquam& Karma = 1&已批准= 1& Ip = 21.99.31.96& Agent = Mozilla%2F5.0 +%28Macintosh%3B + U%3B + Intel + Mac + OS + X + 10_7%3B + zh-cn%29 + App leWebKit%2F533.4 +%28KHTML%2C + like + Gecko%29 + Version%2F4.1 + Safari%2F533.4& Create = 2018-07-17T00%3A00%3A00.000& Update = 2012-06-01T00 %3A00%3A00.000&安培; __ RequestVerificationToken = CfDJ8OfA6sTjcU1PuqxxzGM-oMquggjJDBhMvQwfCKwHRJS9tJeBi-4bT19jJVjuUjZgYE1LD4BvCF2LBJlQ45u3d9sEGmm-l9EAhbXaA2TwuNjW4xhYpVXl4Z0YE_YBEvbuSzodxjP8v1GoYAXYfs5yl3L39SK0gp1YKkkwujMhdExO17v3n-b_y4IhhZJ3SanIZw
<强>注意:除了在POST URL上存在差异外,其他所有内容(应在此处显示)都相同。每次对此进行故障排除时,我都会输入第一个条目,对其进行编辑,然后提交。每次执行此操作时(在其他四个可以正常工作的过程中),它都会迭代到下一个条目;
示例:
A)编辑和在有 20个项目条目 时提交项目1 :
POST https: // localhost:44390 / Home / EditProject / 21< ===差异
B)编辑并放大;当有 20条评论条目 时,提交评论1 :
POST https: // localhost:44390 / Home / EditComment / 1< ===差异
Chrome (网络标题)
成功(项目)
常规:
请求URL:https:// localhost:44390 / Home / EditProject / 66
请求方法:POST
状态码:302
远程地址:[:: 1]:44390
推荐人策略:no-referrer-when-downgrade
------- -------------------------------------------------- ------------------------------------------
响应标题:
内容长度:0
日期:2019年7月1日星期一00:04:16 GMT
位置:/ Home / ViewProjects
服务器:Kestrel
状态:302
x-技术支持:ASP.NET
x-sourcefiles:=?UTF-8?B?QzpcV29ya3NwYWNlXHd3d1xhc3BcUG9ydGZvbGlvXFBvcnRmb2xpb1xIb21lXE VkaXRQcm9qZWN0XDY2?=
------------------------------------------- -------------------------------------------------- ------
请求标头:
:授权:本地主机:44390
:方法:POST
:path:/ Home / EditProject / 66
:scheme :https
接受:text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp,image / apng,* / *; q = 0.8,application / signed-exchange; v = b3
accept-encoding:gzip,deflate,br
accept-language:zh-cn,en; q = 0.9,mt; q = 0.8
cache-control:max-age = 0
内容长度:1200
内容类型:application / X WWW的窗体-urlencoded
饼干:.AspNetCore.Antiforgery.x5eNnYCJ5UA = CfDJ8OfA6sTjcU1PuqxxzGM-oMrl1aZfFqqMphsPHMioPYeJIj8tRRSXB1N9Pm7JhspsKDyUKawAVJYkSlP56myEU4qcRohQ1axrDWFXPVvZjlNZqiRZAZVOMcZ3wupV12M_z289E7MaUrZ1nbOzH34eiH0; .AspNetCore.Identity.Application = CfDJ8OfA6sTjcU1PuqxxzGM-oMpTJYFjUyUy3eLO3fbnX9V4SSq14P_h_AlTAyZs-9LrMW9QOzTP46d8CJetHqzamw-ulm6IbjGyC_hElFiwtJRbKAV3GuVlGQeNfbhcJ7M81EH4bqnbi-NBwP4nmlXROTG3DvMYdHqC1-eqT53ip4mnHpdLDLKlwX80Lk8uWPpiyD5L_RFiMGl5i0vOUz19bbn-mSC3IVbuGz8LeDePfKDmU-3b8_sNiZJpBpx4p6jORrds69LkpkdZX2NUWzyevM4TWw8irVRRBY0PAFKkkZEfQy52kPFfHLZgcZ2JMFo2iQ0DqRcq7nqwnU1JRbNTHEQ56WOsStWn7IGfBqA43B5QdLn-yWTiP5AIalG3kv_o-6VZTmyfu6QbBCbwD_7gpjewoB8IiYn86WaTVbvkryGBJZMjSEq5M2H1m365zI392lNZVzwDADwF04s4zYmHx8snkk9Z3NUAjvzDJo9b1IJNNIKnPmERysOR73W_hAfZdpVN0Ltx2fT7-13g4ow-2Xizi_t2b4SQcX6tC_tlju224eh0KkKNxOJ3irBQRsWAT9iKe_aaE7usFUkZgfR9vuZnPO62qzuxUwROsX3-Tz4lSxSD2N4ajqpEpVMcS528hMO5lXQwMA2RpGBKpR2JJzsN1KdbYgPcB16Ad14VgJNJ
产地:https://开头本地主机:44390
引荐:https:// localhost:44390 / Home / EditProject / 66
upgrade-insecure-requests:1
user-agent:Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML ,例如Gecko)Chrome / 75.0.3770.100 Safari / 537.36
---------------------------------------------- -------------------------------------------------- ---
表单数据:
标题:产品工程师
描述:nulla neque libero convallis eget eleifend
内容:sodales scelerisque mauris sit amet erossuspisse accumsan tortor quis turpis s ante ante vivamus斗牛士Mattis egestas metus aenean发酵罐doc ut mauris eget massa tempor convallis nulla neque libero convallis eget eleifend luctus ultricies eu nibh quisque id justo sit amet sapien dignissimvesivelum结束了一场恶性争斗,并最终获得了胜利,并最终获得了胜任权。
Project_Image:http://dummyimage.com/193x141.jpg/ff4444/ffffff
Live_Url: .com / eget / tincidunt / eget.jpg
Github_Repo:sourceforge.net/et/ultrices/posuere/cubilia.jpg
Bitbucket_Repo:creativecommons.org/pede/libero/quis.html
创建:2011-07-11T00:00:00.000
更新:2019-06-20T00:00:00.000
__RequestVerificationToken: CfDJ8OfA6sTjcU1PuqxxzGM-oMq4kGmbGOLj875J5O8hQlwLIYQR7YHYe58lgzEyN5Wat3viIjRuF80IPiwf_iRYUydAC0vfWv-q5jvLA_bAsdz7blAbvNoT4TxTYqZ5ONf5Q2bYqOyWlhdoN7ZduEaRc3dEBua_8F35F6mNuq0NFfLTDkvlCvO1da4dbhsWg49nsg
----------------------------------------- -------------------------------------------------- --------
故障(评论)
常规:
请求网址:https:// localhost:44390 / Home / EditComment / 20
请求方法:POST
状态码:500
远程地址:[:: 1]:44390
推荐人政策:no-referrer-何时降级
------------------------------------------- -------------------------------------------------- ------
响应标题:
内容类型:text / h tml; charset = utf-8
日期:2019年6月30日,星期日23:40:23 GMT
服务器:Kestrel
状态:500
x技术支持:ASP.NET
x-sourcefiles:=?UTF-8?B?QzpcV29ya3NwYWNlXHd3d1xhc3BcUG9ydGZvbGlvXFBvcnRmb2xpb1xIb21lXEVkaXRDb21tZW50XDIw?=
---------------------------- -------------------------------------------------- ---------------------
请求标头:
:authority:localhost:44390
:方法:POST
:path:/ Home / EditComment / 20
:scheme:https
accept:text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp,image / apng,* /*;q=0.8,application/signed-exchange;v=b3
accept-encoding:gzip,deflate,br
accept-language:en-US,en; q = 0.9,mt; q = 0.8
缓存控制:最大年龄= 0
内容长度:558
内容类型:application / x-www-form-urlencoded
cookie:.AspNetCore。 Antiforgery.x5eNnYCJ5UA = CfDJ8OfA6sTjcU1PuqxxzGM-oMrl1aZfFqqMphsPHMioPYeJIj8tRRSXB1N9Pm7JhspsKDyUKawAVJYkSlP56myEU4qcRohQ 1axrDWFXPVvZjlNZqiRZAZVOMcZ3wupV12M_z289E7MaUrZ1nbOzH34eiH0; .AspNetCore.Identity.Application = CfDJ8OfA6sTjcU1PuqxxzGM-oMpTJYFjUyUy3eLO3fbnX9V4SSq14P_h_AlTAyZs-9LrMW9QOzTP46d8CJetHqzamw-ulm6IbjGyC_hElFiwtJRbKAV3GuVlGQeNfbhcJ7M81EH4bqnbi-NBwP4nmlXROTG3DvMYdHqC1-eqT53ip4mnHpdLDLKlwX80Lk8uWPpiyD5L_RFiMGl5i0vOUz19bbn-mSC3IVbuGz8LeDePfKDmU-3b8_sNiZJpBpx4p6jORrds69LkpkdZX2NUWzyevM4TWw8irVRRBY0PAFKkkZEfQy52kPFfHLZgcZ2JMFo2iQ0DqRcq7nqwnU1JRbNTHEQ56WOsStWn7IGfBqA43B5QdLn-yWTiP5AIalG3kv_o-6VZTmyfu6QbBCbwD_7gpjewoB8IiYn86WaTVbvkryGBJZMjSEq5M2H1m365zI392lNZVzwDADwF04s4zYmHx8snkk9Z3NUAjvzDJo9b1IJNNIKnPmERysOR73W_hAfZdpVN0Ltx2fT7-13g4ow-2Xizi_t2b4SQcX6tC_tlju224eh0KkKNxOJ3irBQRsWAT9iKe_aaE7usFUkZgfR9vuZnPO62qzuxUwROsX3-Tz4lSxSD2N4ajqpEpVMcS528hMO5lXQwMA2RpGBKpR2JJzsN1KdbYgPcB16Ad14VgJNJ
产地:https://开头本地主机:44390
引荐:https:// localhost:44390 / Home / EditComment / 20
upgrade-insecure-requests:1
user-agent:Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML ,例如Gecko)Chrome / 75.0.3770.100 Safari / 537.36
---------------------------------------------- -------------------------------------------------- ---
表单数据:
Mp_Post_Id:20
Mp_Guest_Id:20
评论:etiam faucibus cursus urna uttellus nulla ut eartt id mauris vulputate elementum nullam varius nulla
业力:6
批准:0
Ip:142.146.130.50
代理:Mozilla / 5.0(Windows NT 5.1; rv:14.0)Gecko / 20120405 Firefox / 14.0a1
创建:2010-10-21T00:00:00.000
更新:2009-10-07T00:00:00.000
__RequestVerificationToken:CfDJ8OfA6sTjcU1PuqxxzGM-oMpEiWlpyDJJHiDaw7Rz0PI -L3LvBS94t5QxvcBZ2PwMUI9McLlFR1rtds9yh89UZSzHpR-q_SvbM1g4KCUYDhvNht_bMaoy9NJvMTfOCR_TPW4CKTMnJCR8OEJYahY9CWXY_GozMl1MMkL -------- -------------------------------------------------- -------
Wireshark(流量分析)
成功(编辑项目)
POST / Home / EditProject / 2 HTTP / 1.1
缓存控制:max-age = 0
连接:保持活动
内容类型:application / x-www-form-urlencoded
接受:text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp,image / apng,* / *; q = 0.8,application / signed-exchange; v = b3
Accept-Encoding:gzip,deflate,br
Accept-Lan瓜哥:EN-US,EN; Q = 0.9,MT; Q = 0.8
曲奇:.AspNetCore.Antiforgery.x5eNnYCJ5UA = CfDJ8OfA6sTjcU1PuqxxzGM-oMrl1aZfFqqMphsPHMioPYeJIj8tRRSXB1N9Pm7JhspsKDyUKawAVJYkSlP56myEU4qcRohQ1axrDWFXPVvZjlNZqiRZAZVOMcZ3wupV12M_z289E7MaUrZ1nbOzH34eiH0; .AspNetCore.Identity.Application = CfDJ8OfA6sTjcU1PuqxxzGM-oMqPm6KX-2uhTXr62WeE6Jia-lF8RtuWQCtjegxTJyf6k-wmUcVdvsBAhEuLKWMN_ttD6dPUr-E8QGJPI_2fD0vYnbo6ADWRXWlMFHwloQ43bPBuSn0zPyp6rZvQLaYFXQXO2aO9Kk7UF64Nh4-kJenvCOcPYtv5JS5HneYXgXO_hM26wnG-3my6SaA4ApdBYndK4DbrdB4393HtLK1579yg7ON12bDIBH71pTMdK6UuIvAI1Bh3HbkUuCOtJzZ3ZqB_JQAutgRe6z6nFGcdPMcb0VbIUPa9USyg0oUJ9KxNPspX9y_dAt4GO18OrsFd-S8D-oWV7zDEMpQVBpLoaVk23xpiObUlVLfS-OQhfVgq3RAXAfkZOR7B7eusFkr3I_ZQRb__76x8dVRvHDy-gy_2ZU1xNJve0v-L38kRsVKoXpjCfc9HW9CaVZvoOH6YB1x-gwsGB_eJ8IJsMTnscrNhDloNlel42K7q8GlA-lTK9yXgiXqLm2VAYdpCf_b45ixMba0Cr7umLyMBzf7BEo3J5uNEAYvF7qN5DOlTSbuvwP33ZbBQJyu3uwnfi4JdzYHNDtlZJqlgUkVgmw_3snp3oJxizU50DFgTUyPjAuB71aEOEyVQRXbgZbJ_S-TzLddHc-hjZarUqKK6n5MBX-8_1
主机:本地主机: 44390
引用者:https:// localhost:44390 / Home / EditProject / 2
用户代理:Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,like Gecko)Chrome /75.0.3770.100 Safari / 537.36
来源:https:// localhost:44390
upgrade-insecure-re任务:1
MS-ASPNETCORE-TOKEN:2a6aebc6-e154-4f02-9517-cae788a1069f
X-Forwarded-For:[:: 1]:60639
X-Forwarded-Proto:https
内容长度:710
标题=高级+质量+工程师+ IV& Desc = nascetur + ridiculus + mus + vivamus + vestibulum + sagittis + sapien + cum + sociis& Content = vivamus + tortor + duis + mattis + egestas + metus + aenean + fermentum + donec + ut + mauris + eget& Project_Image = http%3A%2F%2Fdummyimage.com%2F237x180.bmp%2F5fa2dd%2Fffffff& Live_Url = ihg.com%2F %2Fnisi%2Fat%2Fnibh.json& Github_Repo = paginegialle.it%2Fligula%2Fsuspendisse.xml& Bitbucket_Repo = harvard.edu%2Fcongue.aspx& Create = 2018-09-07T00%3A00%3A00.000& Update = 2013 -17T00%3A00%3A00.000&安培; __ RequestVerificationToken = CfDJ8OfA6sTjcU1PuqxxzGM-oMqFkSNAgkReKvXjTW0EStR_OB4Zz6j90ZdieDNspaE86824rUys1Av2cI9mKtO15RaMnYSiz1_As63Ez0XWxX4N3zfL4vlgGfPQ43FMqqfcPBAG33xvi4G0naOTHEVTdGbiwkLrK2UVF2O01JzfVW3olYbxna45Pg10haFTI-s5QgHTTP / 1.1 302实测值
日期:星期一,2019年7月1日16时19分16秒GMT
服务器:茶隼
内容长度:0
位置:/ Home / ViewProjects
失败(编辑评论)
POST / Home / EditComment / 1 HTTP / 1.1
缓存控制:max-age = 0
连接:保持活动状态
内容类型:application / x-www-form-urlencoded
接受:text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp,image / apng,* / *; q = 0.8,application / signed-exchange; v = b3
接受编码:gzip,放气,BR
接受语言:EN-US,EN; q = 0.9,MT; q = 0.8
曲奇:.AspNetCore.Antiforgery.x5eNnYCJ5UA = CfDJ8OfA6sTjcU1PuqxxzGM-oMrl1aZfFqqMphsPHMioPYeJIj8tRRSXB1N9Pm7JhspsKDyUKawAVJYkSlP56myEU4qcRohQ1axrDWFXPVvZjlNZqiRZAZVOMcZ3wupV12M_z289E7MaUrZ1nbOzH34eiH0; .AspNetCore.Identity.Application = CfDJ8OfA6sTjcU1PuqxxzGM-oMqsILl7uDq3qp0MgEGexCwq_b2cNi4376Wt5jxWgINpwDxVRedde5wkOvqycIGfKrQJM2uCVgFMc75i-3Ch_Sct3wFtj_o2wHjLt9OSgM1dieKWdY8BVsLWGHIsMkceMbh_GQz6xJsKrOixjijHUw88p990DPKm2dGJo-JLSHJpqxGNkQxlhPNPf-VsHEQmh27Mn2ah_NZj0NqIlxDuxfmeLQoV0W1s99zVg7URMUbSmGQsShrT1HxhcUjesLuGnyy90GdxmFyGf2-RKPl1zGdkQhaIgicmxQi-bR8otlu5E1uHPms-_HR3xZwT3koowKFYNM4NFHfPuQOwPgZooHCJeaYvweHuqiB5Oh98c6gRHalMSUqGApIICOfVY7mrr9uxt70PeB60PisyAfASCClKf0IsnJLh8flRZ5lr7cr4fhVXU9Jn-PS_09-iX262WvSgjWiPvfe6W_3QxhnPV1NBb0xVy7FCBNMeIIge0BftQzGMb0h_2xsCITwf9oAApXH-uTnC4E2FZI1nUzdfRVPCrj0kXsppeVr6q-65d9_cWgh2aDC4EYeCF4v__Yz9IZPoMKCvHF_rq_Vna4jLPLsobt4VcViYrSY66JmtO9IeoXpA3Ivd2P7ws4lcnJ9STgFV4oP3hmC4aRdA1BURRzz2
主机:本地主机:44390
的Referer:https://开头本地主机:44390 / Home / EditComment / 1
用户代理:Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 75.0.3770.100 Safari / 537.36
来源:https:// localhost:44390
upgrade-insecure-re任务:1
MS-ASPNETCORE-TOKEN:2a6aebc6-e154-4f02-9517-cae788a1069f
X-Forwarded-For:[:: 1]:61219
X-Forwarded-Proto:https
内容长度:606
Mp_Post_Id = 1& Mp_Guest_Id = 1& Comment = lorem + quisque + ut + erat + curabitur + gravida + nisi + at + nibh + in + hac + habitasse + platea + dictumst + aliquam& Karma = 1&已批准= 1& Ip = 21.99.31.96& Agent = Mozilla%2F5.0 +%28Macintosh%3B + U%3B + Intel + Mac + OS + X + 10_7%3B + zh-TW%29 + AppleWebKit%2F533.4 +%28KHTML%2C + like + Gecko%29 + Version%2F4.1 + Safari%2F533.4& Create = 2018-07-17T00%3A00%3A00.000&更新= 2012-06-01T00%3A00%3A00.000和放大器; __ RequestVerificationToken = CfDJ8OfA6sTjcU1PuqxxzGM-oMr9nzkkEn5p6n7jwRflZ1bmxhEOVzWiW7VXO1rmDYbHQR4CvYlmqH4LyuHMPDsQZWXE-gZ3eDU2LWqJd1uVnMKeJcbV0gne1gxSQdeg2Cd7wklVGIJAlC4PNr5hbqJmAGItiemNRukLVKMLVZ0E65dR-pVhxKy4SteMmvnDVMg5_QHTTP / 1.1 500内部服务器错误
日期:星期一,2019年7月1日17时06分52秒GMT
内容类型:text / html; charset = utf-8
服务器:Kestrel
传输编码:块状
附加信息
项目配置
myProject.csproj
< Project Sdk = Microsoft.NET.Sdk.Web>
< PropertyGroup>
< TargetFramework> netcoreapp2.1< / TargetFramework>
< / PropertyGroup>
< ItemGroup>
< PackageReference Include = Microsoft.AspNetCore.App Version = 2.1.2 />
< PackageReference Include = Microsoft.AspNetCore.Razor.Design Version = 2.1.2 PrivateAssets = All />
< PackageReference Include = Microsoft.VisualStudio.Web.CodeGeneration.Design Version = 2.1.9 />
< PackageReference Include = MySql.data Version = 8.0.16 />
< PackageReference Include = MySql.Data.EntityFrameworkCore Version = 8.0.16 />
< / ItemGroup>
< ItemGroup>
< Folder Include = Migrations\ />
< / ItemGroup>
< / Project>
数据库
[mpComment.sql]
创建表[mpComment]
(
[id] INT非空主键,
[mp_post_id] INT非空外键引用mpPost(id),
[mp_guest_id ] INT NOT NULL外国关键字引用mpGuest(id),
[注释] NVARCHAR(500)NOT NULL,
[karma] INT NULL,
[已批准] INT NOT NULL,
[ip] NVARCHAR(100)NULL,
[代理] NVARCHAR(255)NULL,
[创建] DATETIME NULL,
[update] DATETIME NULL,
)
插入查询
CommentsInsertQuery。 sql
完全相同与通过上述表格提交的数据相同(通常);
插入[profileDb]。[ dbo]。[mpComment]([mp_post_id],[mp_guest_id],[comment],[karma],[approved],[ip],[agent],[create],[update])
值(1 ,1、1,'在习惯性居留权的碟状aliquam的笔尖处','1,','21.99.31.96','Mozilla / 5.0(Macintosh; U; Intel Mac OS X 10_7; en-us) AppleWebKit / 533.4(KHTML,like Gecko)Version / 4.1 Safari / 533.4','07 / 17/2018','06 / 01/2012');
最后的想法
我担心此问题可能发生在实体框架内的某个地方,我无法进行故障排除。如果我有一个真诚的起点,可以确定.Net框架捕获浏览器数据的确切点,那么我也许可以更好地确定关键问题。
类似帖子:
这个问题与另一个问题非常相似,但是,故障排除似乎少了很多,有关物。此外,在这个问题上没有多大兴趣,也没有提供解决方案。
感谢进步和欢呼
Jerry Rigged解决方案
我能够为了管理变通办法,尽管如此,我仍然不确定出现此错误的原因。
简介
感觉到回发数据已在应用程序中捕获(图形),但是,它没有填充 EditComments
方法的参数值,我只是手动填充了数据。
解决方案
包含 Microsoft.AspNetCore.Http
我的Home Controller中的库,并修改了以下回发方法
:
HomeController.cs
[HttpPost]
公共异步任务< IActionResult> EditComment(MpComment评论)
{
comment.Id = 0;
_repo.AddComment(comment);
if(await _repo.SaveChangesAsync())
return RedirectToAction( ViewComments);
else
return View(comment);
}
至
HomeController.cs
[HttpPost]
公共异步任务< IActionResult> EditComment()
{
var form = Request.Form.ToList();
var comment = new MpComment
{
Id = 0,
Mp_Post_Id = Int32.Parse(form.Where(x => x.Key == Mp_Post_Id)。FirstOrDefault()。Value),
Mp_Guest_Id = Int32.Parse(form.Where(x => x.Key == Mp_Guest_Id)。FirstOrDefault()。Value),
注释= form.Where(x => x.Key ==注释).FirstOrDefault()。Value,
Karma = Int32.Parse(form.Where(x => x.Key == Karma)。FirstOrDefault()。Value),
批准= Int32.Parse(form.Where(x => x.Key == Approved)。FirstOrDefault()。Value),
Ip = form.Where(x => x.Key == Ip)。FirstOrDefault()。Value,
Agent = form.Where(x => x.Key == Agent)。 FirstOrDefault()。Value,
Create = Convert.ToDateTime(form.Where(x => x.Key == Create)。FirstOrDefault()。Value),
Update = Convert.ToDateTime (form.Where(x => x.Key == \"Upd ate\").FirstOrDefault().Value)
};
_repo.AddComment(comment);
if (await _repo.SaveChangesAsync())
return RedirectToAction(\"ViewComments\");
else
return View(comment);
}
...and everything works as expected.
Additional note
These values were easy enough to retrieve, in case anyone else has a similar issue. Simply convert the request form data into a List
(as above) and print out those results via the output console.
Example:
[HttpPost]
public methodExpectingPostback()
{
var form = Request.Form.ToList();
foreach (var item in form)
{
Debug.WriteLine($\"{item.Key} : {item.Value}\");
}
}
Scenario
I'm setting up a blog and am configuring a page to POST edited comments to an MsSql server.
Issue
After I submit submit a form POST, via my view, the property values that are supposed to be captured and returned via this form, are all returned as "NULL"!? This eventually causes an exception error due to there being NULL values present within my data model. After stepping through my entire application, and using Fiddler, I am unable to diagnose the issue.
Quick Visual Example
After a
POST
has been submitted (during run-time) and my application has reached the Home Controller of my blog, this is what's shown and available.
Note: as you can see, each input's value is captured by the Home Controller during run-time. However, this data is not transferred to the EditComment method post POST
.
Process
Input controls are populated with property values for my model, then submitted:
EditComments.cs
@model MpComment
... HTML Content ...
<form asp-controller="Home" asp-action="EditComment" method="post" class="text-danger input-form">
<div asp-validation-summary="ModelOnly"></div>
<div class="form-group">
<label asp-for="<Model.Property>" class="control-label"></label>
<input asp-for="<Model.Property>" class="form-control" />
<span asp-validation-for="<Model.Property>" class="text-danger"></span>
</div>
... ASP Form Input Elements...
<div class="form-group input-submit">
<input type="submit" value="Submit" class="btn material-button" />
</div>
</form>
My AppDbContext is initialized
AppDbContext.cs
namespace Portfolio.Data
{
public class AppDbContext : IdentityDbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
public virtual DbSet<MpPost> MpPost { get; set; }
public virtual DbSet<MpComment> MpComment { get; set; }
public virtual DbSet<MpGuest> MpGuest { get; set; }
public virtual DbSet<MpLogin> MpLogin { get; set; }
public virtual DbSet<MpProject> MpProject { get; set; }
}
}
My MpComments model begins to appear to move through and set each properties value, however, the data that populates each property is NULL.
using System;
using System.ComponentModel.DataAnnotations;
namespace Portfolio.Models
{
public partial class MpComment
{
public int Id { get; set; }
public int Mp_Post_Id { get; set; }
public int Mp_Guest_Id { get; set; }
public string Comment { get; set; }
public int? Karma { get; set; }
public int? Approved { get; set; }
public string Ip { get; set; }
public string Agent { get; set; }
public DateTime? Create { get; set; } = DateTime.Now;
public DateTime? Update { get; set; } = DateTime.Now;
}
}
Once nothing gets populated, the Home Controller is initiated, and the following function is called:
HomeController.cs
[HttpPost]
public async Task<IActionResult> EditComment(MpComment comment)
{
comment.Id = 0;
_repo.AddComment(comment);
if (await _repo.SaveChangesAsync())
return RedirectToAction("ViewComments");
else
return View(comment);
}
It's at this point where the comment parameter variable populated from the POST contains only NULL values, and appears like so:
Investigation & Analysis
VisualStudio
- Local Variable Inspector
Agent null
Approved null
Comment null
Create {6/30/2019 1:04:29 PM}
Id 0
Ip null
Karma null
Mp_Guest_Id 0
Mp_Post_Id 0
Update {6/30/2019 1:04:29 PM}
This procedure works as expected on other procedures set to accomplish this exact same feature, just on a different table!?
For example, here's what Fiddler captured on a successful POST, from an almost identical POST'ing procedure:
Fiddler Inspector
- Raw (Success for EditProject)
POST https://localhost:44390/Home/EditProject/21 HTTP/1.1
Host: localhost:44390
Connection: keep-alive
Content-Length: 555
Cache-Control: max-age=0
Origin: https://localhost:44390
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: https://localhost:44390/Home/EditProject/21
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,mt;q=0.8
Cookie: .AspNetCore.Antiforgery.x5eNnYCJ5UA=CfDJ8OfA6sTjcU1PuqxxzGM-oMrl1aZfFqqMphsPHMioPYeJIj8tRRSXB1N9Pm7JhspsKDyUKawAVJYkSlP56myEU4qcRohQ1axrDWFXPVvZjlNZqiRZAZVOMcZ3wupV12M_z289E7MaUrZ1nbOzH34eiH0; .AspNetCore.Identity.Application=CfDJ8OfA6sTjcU1PuqxxzGM-oMp2YqORrHzf5IL0rLJ8jvAP-RYvHIXeH63EfD3-TugdZGBP9nf_lHhAn71ACsIQZe_cJ1x7u3FBh25uhlXZIJX9yk7ZdH_GuwfYEe-Zaa1CSAD2f2g8U7syt8jvxy18c-qCN9Yq2zLQpBeOlzftudcaMKKrsA-UGO8BOHLPTk1TYe1QMosDGaFDLXY0POqCpluxiiA0qsA0i9iQeAP6HL7ZC8lLjf76Lf_E5usVyakwa9X3ELDJQeaEFFa5Vi_5063xCHhm3NRREE5loUCff1rKmaOKvvOR-Fnf-QtYLG-MGthgVAGah4cdXjD0jsKFBM0Ny-Yt8uRddQ26w_8AUJqhRo9jOAXEuzyhYwPRfKQKykgpy-4lVIZXc2QR25EWxq9H6zh5GGCTIitxISDcpoHf0mUqzT9aJKo_LwB6cibzbDwBmVsTc6Yn6cQA0MMoBVa6E6hKuvQoNerU7psX5z2D2k8tB8mZVlJQ3medeMwHQonOSBh99OxOrBO5K6iedlpPqSNco8r7PbNcHCdhLKehtoyJkE3tzmrv_EOTAS7ldXNhhPHqNp_RmuAdGWlsJ-a-bN5itj1hv_o7RCxl8t49XB9oddsg4iOvR-BUZOLuxJKfQ90PAH4S9BvblwLKoXx3Gt3We5WeG8Ga6rAXHQhd
Id=0&Title=Product+Engineer&Desc=nulla+neque+libero+convallis+eget+eleifend&Live_Url=bloglovin.com%2Feget%2Ftincidunt%2Feget.jpg&Github_Repo=sourceforge.net%2Fet%2Fultrices%2Fposuere%2Fcubilia.jpg&Bitbucket_Repo=creativecommons.org%2Fpede%2Flibero%2Fquis.html&Create=2011-07-11T00%3A00%3A00.000&Update=2019-06-20T00%3A00%3A00.000&__RequestVerificationToken=CfDJ8OfA6sTjcU1PuqxxzGM-oMqTHmlRblU70EY0Ou7tH2IifiXdJOCtMRepfMg-GhKz-j4at6h9BOzJTNjHIROMjDpUiOqxvDeGWcja8K-uGkYrW8DX58j9mIFlwKML9tLVtvusmGmPekVMPxYqRkKdcyLGb6qpav3upDLAvfxLblbs9RynCyG4bDTAAZ4jzxc-ww
Fiddler Inspector
- Raw (Failure for EditComments)
POST https://localhost:44390/Home/EditComment/1 HTTP/1.1
Host: localhost:44390
Connection: keep-alive
Content-Length: 606
Cache-Control: max-age=0
Origin: https://localhost:44390
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: https://localhost:44390/Home/EditComment/1
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,mt;q=0.8
Cookie: .AspNetCore.Antiforgery.x5eNnYCJ5UA=CfDJ8OfA6sTjcU1PuqxxzGM-oMrl1aZfFqqMphsPHMioPYeJIj8tRRSXB1N9Pm7JhspsKDyUKawAVJYkSlP56myEU4qcRohQ1axrDWFXPVvZjlNZqiRZAZVOMcZ3wupV12M_z289E7MaUrZ1nbOzH34eiH0; .AspNetCore.Identity.Application=CfDJ8OfA6sTjcU1PuqxxzGM-oMp2YqORrHzf5IL0rLJ8jvAP-RYvHIXeH63EfD3-TugdZGBP9nf_lHhAn71ACsIQZe_cJ1x7u3FBh25uhlXZIJX9yk7ZdH_GuwfYEe-Zaa1CSAD2f2g8U7syt8jvxy18c-qCN9Yq2zLQpBeOlzftudcaMKKrsA-UGO8BOHLPTk1TYe1QMosDGaFDLXY0POqCpluxiiA0qsA0i9iQeAP6HL7ZC8lLjf76Lf_E5usVyakwa9X3ELDJQeaEFFa5Vi_5063xCHhm3NRREE5loUCff1rKmaOKvvOR-Fnf-QtYLG-MGthgVAGah4cdXjD0jsKFBM0Ny-Yt8uRddQ26w_8AUJqhRo9jOAXEuzyhYwPRfKQKykgpy-4lVIZXc2QR25EWxq9H6zh5GGCTIitxISDcpoHf0mUqzT9aJKo_LwB6cibzbDwBmVsTc6Yn6cQA0MMoBVa6E6hKuvQoNerU7psX5z2D2k8tB8mZVlJQ3medeMwHQonOSBh99OxOrBO5K6iedlpPqSNco8r7PbNcHCdhLKehtoyJkE3tzmrv_EOTAS7ldXNhhPHqNp_RmuAdGWlsJ-a-bN5itj1hv_o7RCxl8t49XB9oddsg4iOvR-BUZOLuxJKfQ90PAH4S9BvblwLKoXx3Gt3We5WeG8Ga6rAXHQhd
Mp_Post_Id=1&Mp_Guest_Id=1&Comment=lorem+quisque+ut+erat+curabitur+gravida+nisi+at+nibh+in+hac+habitasse+platea+dictumst+aliquam&Karma=1&Approved=1&Ip=21.99.31.96&Agent=Mozilla%2F5.0+%28Macintosh%3B+U%3B+Intel+Mac+OS+X+10_7%3B+en-us%29+AppleWebKit%2F533.4+%28KHTML%2C+like+Gecko%29+Version%2F4.1+Safari%2F533.4&Create=2018-07-17T00%3A00%3A00.000&Update=2012-06-01T00%3A00%3A00.000&__RequestVerificationToken=CfDJ8OfA6sTjcU1PuqxxzGM-oMquggjJDBhMvQwfCKwHRJS9tJeBi-4bT19jJVjuUjZgYE1LD4BvCF2LBJlQ45u3d9sEGmm-l9EAhbXaA2TwuNjW4xhYpVXl4Z0YE_YBEvbuSzodxjP8v1GoYAXYfs5yl3L39SK0gp1YKkkwujMhdExO17v3n-b_y4IhhZJ3SanIZw
Note: Everything appears identical (where it should), except there's a discrepancy with the POST URL. Each time I troubleshoot this, I take the 1st entry, edit it, and then submit it. Each time I do this (on the four other procedures where this works fine), it iterates to the next entry; as seen above.
Example: A) Edit & Submit Project 1 when there's 20 Project entries:
POST https://localhost:44390/Home/EditProject/21 <=== discrepancy
B) Edit & Submit Comment 1 when there's 20 Comment entries:
POST https://localhost:44390/Home/EditComment/1 <=== discrepancy
Chrome (Network Headers)
Success (Project)
General:
Request URL: https://localhost:44390/Home/EditProject/66
Request Method: POST
Status Code: 302
Remote Address: [::1]:44390
Referrer Policy: no-referrer-when-downgrade
---------------------------------------------------------------------------------------------------
Response Headers:
content-length: 0
date: Mon, 01 Jul 2019 00:04:16 GMT
location: /Home/ViewProjects
server: Kestrel
status: 302
x-powered-by: ASP.NET
x-sourcefiles: =?UTF-8?B?QzpcV29ya3NwYWNlXHd3d1xhc3BcUG9ydGZvbGlvXFBvcnRmb2xpb1xIb21lXEVkaXRQcm9qZWN0XDY2?=
---------------------------------------------------------------------------------------------------
Request Headers:
:authority: localhost:44390
:method: POST
:path: /Home/EditProject/66
:scheme: https
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9,mt;q=0.8
cache-control: max-age=0
content-length: 1200
content-type: application/x-www-form-urlencoded
cookie: .AspNetCore.Antiforgery.x5eNnYCJ5UA=CfDJ8OfA6sTjcU1PuqxxzGM-oMrl1aZfFqqMphsPHMioPYeJIj8tRRSXB1N9Pm7JhspsKDyUKawAVJYkSlP56myEU4qcRohQ1axrDWFXPVvZjlNZqiRZAZVOMcZ3wupV12M_z289E7MaUrZ1nbOzH34eiH0; .AspNetCore.Identity.Application=CfDJ8OfA6sTjcU1PuqxxzGM-oMpTJYFjUyUy3eLO3fbnX9V4SSq14P_h_AlTAyZs-9LrMW9QOzTP46d8CJetHqzamw-ulm6IbjGyC_hElFiwtJRbKAV3GuVlGQeNfbhcJ7M81EH4bqnbi-NBwP4nmlXROTG3DvMYdHqC1-eqT53ip4mnHpdLDLKlwX80Lk8uWPpiyD5L_RFiMGl5i0vOUz19bbn-mSC3IVbuGz8LeDePfKDmU-3b8_sNiZJpBpx4p6jORrds69LkpkdZX2NUWzyevM4TWw8irVRRBY0PAFKkkZEfQy52kPFfHLZgcZ2JMFo2iQ0DqRcq7nqwnU1JRbNTHEQ56WOsStWn7IGfBqA43B5QdLn-yWTiP5AIalG3kv_o-6VZTmyfu6QbBCbwD_7gpjewoB8IiYn86WaTVbvkryGBJZMjSEq5M2H1m365zI392lNZVzwDADwF04s4zYmHx8snkk9Z3NUAjvzDJo9b1IJNNIKnPmERysOR73W_hAfZdpVN0Ltx2fT7-13g4ow-2Xizi_t2b4SQcX6tC_tlju224eh0KkKNxOJ3irBQRsWAT9iKe_aaE7usFUkZgfR9vuZnPO62qzuxUwROsX3-Tz4lSxSD2N4ajqpEpVMcS528hMO5lXQwMA2RpGBKpR2JJzsN1KdbYgPcB16Ad14VgJNJ
origin: https://localhost:44390
referer: https://localhost:44390/Home/EditProject/66
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
---------------------------------------------------------------------------------------------------
Form Data:
Title: Product Engineer
Desc: nulla neque libero convallis eget eleifend
Content: sodales scelerisque mauris sit amet eros suspendisse accumsan tortor quis turpis sed ante vivamus tortor duis mattis egestas metus aenean fermentum donec ut mauris eget massa tempor convallis nulla neque libero convallis eget eleifend luctus ultricies eu nibh quisque id justo sit amet sapien dignissim vestibulum vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae nulla dapibus dolor vel est donec odio justo sollicitudin ut suscipit a feugiat et eros vestibulum ac est lacinia nisi venenatis tristique fusce congue diam id ornare
Project_Image: http://dummyimage.com/193x141.jpg/ff4444/ffffff
Live_Url: bloglovin.com/eget/tincidunt/eget.jpg
Github_Repo: sourceforge.net/et/ultrices/posuere/cubilia.jpg
Bitbucket_Repo: creativecommons.org/pede/libero/quis.html
Create: 2011-07-11T00:00:00.000
Update: 2019-06-20T00:00:00.000
__RequestVerificationToken: CfDJ8OfA6sTjcU1PuqxxzGM-oMq4kGmbGOLj875J5O8hQlwLIYQR7YHYe58lgzEyN5Wat3viIjRuF80IPiwf_iRYUydAC0vfWv-q5jvLA_bAsdz7blAbvNoT4TxTYqZ5ONf5Q2bYqOyWlhdoN7ZduEaRc3dEBua_8F35F6mNuq0NFfLTDkvlCvO1da4dbhsWg49nsg
---------------------------------------------------------------------------------------------------
Failure (Comment)
General:
Request URL: https://localhost:44390/Home/EditComment/20
Request Method: POST
Status Code: 500
Remote Address: [::1]:44390
Referrer Policy: no-referrer-when-downgrade
---------------------------------------------------------------------------------------------------
Response Headers:
content-type: text/html; charset=utf-8
date: Sun, 30 Jun 2019 23:40:23 GMT
server: Kestrel
status: 500
x-powered-by: ASP.NET
x-sourcefiles: =?UTF-8?B?QzpcV29ya3NwYWNlXHd3d1xhc3BcUG9ydGZvbGlvXFBvcnRmb2xpb1xIb21lXEVkaXRDb21tZW50XDIw?=
---------------------------------------------------------------------------------------------------
Request Headers:
:authority: localhost:44390
:method: POST
:path: /Home/EditComment/20
:scheme: https
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9,mt;q=0.8
cache-control: max-age=0
content-length: 558
content-type: application/x-www-form-urlencoded
cookie: .AspNetCore.Antiforgery.x5eNnYCJ5UA=CfDJ8OfA6sTjcU1PuqxxzGM-oMrl1aZfFqqMphsPHMioPYeJIj8tRRSXB1N9Pm7JhspsKDyUKawAVJYkSlP56myEU4qcRohQ1axrDWFXPVvZjlNZqiRZAZVOMcZ3wupV12M_z289E7MaUrZ1nbOzH34eiH0; .AspNetCore.Identity.Application=CfDJ8OfA6sTjcU1PuqxxzGM-oMpTJYFjUyUy3eLO3fbnX9V4SSq14P_h_AlTAyZs-9LrMW9QOzTP46d8CJetHqzamw-ulm6IbjGyC_hElFiwtJRbKAV3GuVlGQeNfbhcJ7M81EH4bqnbi-NBwP4nmlXROTG3DvMYdHqC1-eqT53ip4mnHpdLDLKlwX80Lk8uWPpiyD5L_RFiMGl5i0vOUz19bbn-mSC3IVbuGz8LeDePfKDmU-3b8_sNiZJpBpx4p6jORrds69LkpkdZX2NUWzyevM4TWw8irVRRBY0PAFKkkZEfQy52kPFfHLZgcZ2JMFo2iQ0DqRcq7nqwnU1JRbNTHEQ56WOsStWn7IGfBqA43B5QdLn-yWTiP5AIalG3kv_o-6VZTmyfu6QbBCbwD_7gpjewoB8IiYn86WaTVbvkryGBJZMjSEq5M2H1m365zI392lNZVzwDADwF04s4zYmHx8snkk9Z3NUAjvzDJo9b1IJNNIKnPmERysOR73W_hAfZdpVN0Ltx2fT7-13g4ow-2Xizi_t2b4SQcX6tC_tlju224eh0KkKNxOJ3irBQRsWAT9iKe_aaE7usFUkZgfR9vuZnPO62qzuxUwROsX3-Tz4lSxSD2N4ajqpEpVMcS528hMO5lXQwMA2RpGBKpR2JJzsN1KdbYgPcB16Ad14VgJNJ
origin: https://localhost:44390
referer: https://localhost:44390/Home/EditComment/20
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
---------------------------------------------------------------------------------------------------
Form Data:
Mp_Post_Id: 20
Mp_Guest_Id: 20
Comment: etiam faucibus cursus urna ut tellus nulla ut erat id mauris vulputate elementum nullam varius nulla
Karma: 6
Approved: 0
Ip: 142.146.130.50
Agent: Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20120405 Firefox/14.0a1
Create: 2010-10-21T00:00:00.000
Update: 2009-10-07T00:00:00.000
__RequestVerificationToken: CfDJ8OfA6sTjcU1PuqxxzGM-oMpEiWlpyDJHiDaw7Rz0PI6fyiscJ9aAahlk0J2Coz5R42uB-L3LvBS94t5QxvcBZ2PwMUI9McLlFR1rtds9yh89UZSzHpR-q_SvbM1g4KCUYDhvNht_bMaoy9NJvMTfOCR_TPW4CKTMnJCR8OEJYahY9CWXY_GozMl1MMkL3MFkFQ
---------------------------------------------------------------------------------------------------
Wireshark (Traffic Analysis)
Success (Edit Project)
POST /Home/EditProject/2 HTTP/1.1
Cache-Control: max-age=0
Connection: Keep-Alive
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,mt;q=0.8
Cookie: .AspNetCore.Antiforgery.x5eNnYCJ5UA=CfDJ8OfA6sTjcU1PuqxxzGM-oMrl1aZfFqqMphsPHMioPYeJIj8tRRSXB1N9Pm7JhspsKDyUKawAVJYkSlP56myEU4qcRohQ1axrDWFXPVvZjlNZqiRZAZVOMcZ3wupV12M_z289E7MaUrZ1nbOzH34eiH0; .AspNetCore.Identity.Application=CfDJ8OfA6sTjcU1PuqxxzGM-oMqPm6KX-2uhTXr62WeE6Jia-lF8RtuWQCtjegxTJyf6k-wmUcVdvsBAhEuLKWMN_ttD6dPUr-E8QGJPI_2fD0vYnbo6ADWRXWlMFHwloQ43bPBuSn0zPyp6rZvQLaYFXQXO2aO9Kk7UF64Nh4-kJenvCOcPYtv5JS5HneYXgXO_hM26wnG-3my6SaA4ApdBYndK4DbrdB4393HtLK1579yg7ON12bDIBH71pTMdK6UuIvAI1Bh3HbkUuCOtJzZ3ZqB_JQAutgRe6z6nFGcdPMcb0VbIUPa9USyg0oUJ9KxNPspX9y_dAt4GO18OrsFd-s8d-oWV7zDEMpQVBpLoaVk23xpiObUlVLfS-OQhfVgq3RAXAfkZOR7B7eusFkr3I_ZQRb__76x8dVRvHDy-gy_2ZU1xNJve0v-L38kRsVKoXpjCfc9HW9CaVZvoOH6YB1x-gwsGB_eJ8IJsMTnscrNhDloNlel42K7q8GlA-lTK9yXgiXqLm2VAYdpCf_b45ixMba0Cr7umLyMBzf7BEo3J5uNEAYvF7qN5DOlTSbuvwP33ZbBQJyu3uwnfi4JdzYHNDtlZJqlgUkVgmw_3snp3oJxizU50DFgTUyPjAuB71aEOEyVQRXbgZbJ_S-TzLddHc-hjZarUqKK6n5MBX-8_
Host: localhost:44390
Referer: https://localhost:44390/Home/EditProject/2
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
origin: https://localhost:44390
upgrade-insecure-requests: 1
MS-ASPNETCORE-TOKEN: 2a6aebc6-e154-4f02-9517-cae788a1069f
X-Forwarded-For: [::1]:60639
X-Forwarded-Proto: https
Content-Length: 710
Title=Senior+Quality+Engineer+IV&Desc=nascetur+ridiculus+mus+vivamus+vestibulum+sagittis+sapien+cum+sociis&Content=vivamus+tortor+duis+mattis+egestas+metus+aenean+fermentum+donec+ut+mauris+eget&Project_Image=http%3A%2F%2Fdummyimage.com%2F237x180.bmp%2F5fa2dd%2Fffffff&Live_Url=ihg.com%2Fgravida%2Fnisi%2Fat%2Fnibh.json&Github_Repo=paginegialle.it%2Fligula%2Fsuspendisse.xml&Bitbucket_Repo=harvard.edu%2Fcongue.aspx&Create=2018-09-07T00%3A00%3A00.000&Update=2013-05-17T00%3A00%3A00.000&__RequestVerificationToken=CfDJ8OfA6sTjcU1PuqxxzGM-oMqFkSNAgkReKvXjTW0EStR_OB4Zz6j90ZdieDNspaE86824rUys1Av2cI9mKtO15RaMnYSiz1_As63Ez0XWxX4N3zfL4vlgGfPQ43FMqqfcPBAG33xvi4G0naOTHEVTdGbiwkLrK2UVF2O01JzfVW3olYbxna45Pg10haFTI-s5QgHTTP/1.1 302 Found
Date: Mon, 01 Jul 2019 16:19:16 GMT
Server: Kestrel
Content-Length: 0
Location: /Home/ViewProjects
Failure (Edit Comments)
POST /Home/EditComment/1 HTTP/1.1
Cache-Control: max-age=0
Connection: Keep-Alive
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,mt;q=0.8
Cookie: .AspNetCore.Antiforgery.x5eNnYCJ5UA=CfDJ8OfA6sTjcU1PuqxxzGM-oMrl1aZfFqqMphsPHMioPYeJIj8tRRSXB1N9Pm7JhspsKDyUKawAVJYkSlP56myEU4qcRohQ1axrDWFXPVvZjlNZqiRZAZVOMcZ3wupV12M_z289E7MaUrZ1nbOzH34eiH0; .AspNetCore.Identity.Application=CfDJ8OfA6sTjcU1PuqxxzGM-oMqsILl7uDq3qp0MgEGexCwq_b2cNi4376Wt5jxWgINpwDxVRedde5wkOvqycIGfKrQJM2uCVgFMc75i-3Ch_Sct3wFtj_o2wHjLt9OSgM1dieKWdY8BVsLWGHIsMkceMbh_GQz6xJsKrOixjijHUw88p990DPKm2dGJo-JLSHJpqxGNkQxlhPNPf-VsHEQmh27Mn2ah_NZj0NqIlxDuxfmeLQoV0W1s99zVg7URMUbSmGQsShrT1HxhcUjesLuGnyy90GdxmFyGf2-RKPl1zGdkQhaIgicmxQi-bR8otlu5E1uHPms-_HR3xZwT3koowKFYNM4NFHfPuQOwPgZooHCJeaYvweHuqiB5Oh98c6gRHalMSUqGApIICOfVY7mrr9uxt70PeB60PisyAfASCClKf0IsnJLh8flRZ5lr7cr4fhVXU9Jn-PS_09-iX262WvSgjWiPvfe6W_3QxhnPV1NBb0xVy7FCBNMeIIge0BftQzGMb0h_2xsCITwf9oAApXH-uTnC4E2FZI1nUzdfRVPCrj0kXsppeVr6q-65d9_cWgh2aDC4EYeCF4v__Yz9IZPoMKCvHF_rq_Vna4jLPLsobt4VcViYrSY66JmtO9IeoXpA3Ivd2P7ws4lcnJ9STgFV4oP3hmC4aRdA1BURRzz2
Host: localhost:44390
Referer: https://localhost:44390/Home/EditComment/1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
origin: https://localhost:44390
upgrade-insecure-requests: 1
MS-ASPNETCORE-TOKEN: 2a6aebc6-e154-4f02-9517-cae788a1069f
X-Forwarded-For: [::1]:61219
X-Forwarded-Proto: https
Content-Length: 606
Mp_Post_Id=1&Mp_Guest_Id=1&Comment=lorem+quisque+ut+erat+curabitur+gravida+nisi+at+nibh+in+hac+habitasse+platea+dictumst+aliquam&Karma=1&Approved=1&Ip=21.99.31.96&Agent=Mozilla%2F5.0+%28Macintosh%3B+U%3B+Intel+Mac+OS+X+10_7%3B+en-us%29+AppleWebKit%2F533.4+%28KHTML%2C+like+Gecko%29+Version%2F4.1+Safari%2F533.4&Create=2018-07-17T00%3A00%3A00.000&Update=2012-06-01T00%3A00%3A00.000&__RequestVerificationToken=CfDJ8OfA6sTjcU1PuqxxzGM-oMr9nzkkEn5p6n7jwRflZ1bmxhEOVzWiW7VXO1rmDYbHQR4CvYlmqH4LyuHMPDsQZWXE-gZ3eDU2LWqJd1uVnMKeJcbV0gne1gxSQdeg2Cd7wklVGIJAlC4PNr5hbqJmAGItiemNRukLVKMLVZ0E65dR-pVhxKy4SteMmvnDVMg5_QHTTP/1.1 500 Internal Server Error
Date: Mon, 01 Jul 2019 17:06:52 GMT
Content-Type: text/html; charset=utf-8
Server: Kestrel
Transfer-Encoding: chunked
Additional Information
Project Configuration
myProject.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.9" />
<PackageReference Include="MySql.data" Version="8.0.16" />
<PackageReference Include="MySql.Data.EntityFrameworkCore" Version="8.0.16" />
</ItemGroup>
<ItemGroup>
<Folder Include="Migrations\" />
</ItemGroup>
</Project>
Database
[mpComment.sql]
CREATE TABLE [mpComment]
(
[id] INT NOT NULL PRIMARY KEY,
[mp_post_id] INT NOT NULL FOREIGN KEY REFERENCES mpPost(id),
[mp_guest_id] INT NOT NULL FOREIGN KEY REFERENCES mpGuest(id),
[comment] NVARCHAR(500) NOT NULL,
[karma] INT NULL,
[approved] INT NOT NULL,
[ip] NVARCHAR(100) NULL,
[agent] NVARCHAR(255) NULL,
[create] DATETIME NULL,
[update] DATETIME NULL,
)
Insertion Query
CommentsInsertQuery.sql
This would be exactly the same data that would be (typically) submitted through the aforementioned form; which works fine.
INSERT INTO [profileDb].[dbo].[mpComment] ([mp_post_id], [mp_guest_id], [comment], [karma], [approved], [ip], [agent], [create], [update])
VALUES (1, 1, 'lorem quisque ut erat curabitur gravida nisi at nibh in hac habitasse platea dictumst aliquam', 1, 1, '21.99.31.96', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_7; en-us) AppleWebKit/533.4 (KHTML, like Gecko) Version/4.1 Safari/533.4', '07/17/2018', '06/01/2012');
Final Thoughts
I am concerned that this issue might be occurring somewhere within the Entity Framework, where I cannot troubleshoot. If I had a sincere point of origin where I can identify exact point where the data from my browser is captured by the .Net framework, I might be able to better identify the key issue.
Similar Post:
ASP.NET CORE Web API: Model value is null when doing HTTP Post requests with null Guid
This question is very similar to an alternate question, however, there appears to be less troubleshooting, and a lot less information concerning the matter. In addition, there was not much love on this question, and no solutions provided.
Thanks in advance, and cheers
Jerry Rigged Solution
I was able to manage a workaround, albeit, I'm still not certain "why" this error is occurring.
Synopsis
Sense the post-back data was being captured within the application (Graphic), however, it was not populating the parameter value of the EditComments
method, I simply populated the data manually.
Solution
Included the Microsoft.AspNetCore.Http
library within my Home Controller, and modified the following post-back method
from:
HomeController.cs
[HttpPost]
public async Task<IActionResult> EditComment(MpComment comment)
{
comment.Id = 0;
_repo.AddComment(comment);
if (await _repo.SaveChangesAsync())
return RedirectToAction("ViewComments");
else
return View(comment);
}
to
HomeController.cs
[HttpPost]
public async Task<IActionResult> EditComment()
{
var form = Request.Form.ToList();
var comment = new MpComment
{
Id = 0,
Mp_Post_Id = Int32.Parse(form.Where(x => x.Key == "Mp_Post_Id").FirstOrDefault().Value),
Mp_Guest_Id = Int32.Parse(form.Where(x => x.Key == "Mp_Guest_Id").FirstOrDefault().Value),
Comment = form.Where(x => x.Key == "Comment").FirstOrDefault().Value,
Karma = Int32.Parse(form.Where(x => x.Key == "Karma").FirstOrDefault().Value),
Approved = Int32.Parse(form.Where(x => x.Key == "Approved").FirstOrDefault().Value),
Ip = form.Where(x => x.Key == "Ip").FirstOrDefault().Value,
Agent = form.Where(x => x.Key == "Agent").FirstOrDefault().Value,
Create = Convert.ToDateTime(form.Where(x => x.Key == "Create").FirstOrDefault().Value),
Update = Convert.ToDateTime(form.Where(x => x.Key == "Update").FirstOrDefault().Value)
};
_repo.AddComment(comment);
if (await _repo.SaveChangesAsync())
return RedirectToAction("ViewComments");
else
return View(comment);
}
...and everything works as expected.
Additional note
These values were easy enough to retrieve, in case anyone else has a similar issue. Simply convert the request form data into a List
(as above) and print out those results via the output console.
Example:
[HttpPost]
public methodExpectingPostback()
{
var form = Request.Form.ToList();
foreach (var item in form)
{
Debug.WriteLine($"{item.Key} : {item.Value}");
}
}
这篇关于ASP.NET MVC核心Web POST请求使用NULL值填充数据模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!