gpt4 book ai didi

asp.net-mvc-4 - 必需属性的数据注释

转载 作者:行者123 更新时间:2023-12-03 08:24:04 25 4
gpt4 key购买 nike

首先,它可以工作,但今天却失败了!

这是我定义date属性的方式:

[Display(Name = "Date")]
[Required(ErrorMessage = "Date of Submission is required.")]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
public DateTime TripDate { get; set; }

它过去一直在工作。但是今天,当我调用相同的ApiController Action 时:
[HttpPost]
public HttpResponseMessage SaveNewReport(TripLeaderReportInputModel model)

Firebug报告:
ExceptionMessage:

"Property 'TripDate' on type 'Whitewater.ViewModels.Report.TripLeaderReportInputModel'
is invalid. Value-typed properties marked as [Required] must also be marked with
[DataMember(IsRequired=true)] to be recognized as required. Consider attributing the
declaring type with [DataContract] and the property with [DataMember(IsRequired=true)]."

ExceptionType

"System.InvalidOperationException"

发生了什么?那些不是 [DataContract]WCF吗?我正在 REST WebAPI中使用 MVC4!

有人可以帮忙吗?请?

-更新-

我发现了一些类似的链接。

MvC 4.0 RTM broke us and we don't know how to fix it RSS

---再次更新---

这是HTTP响应 header :
Cache-Control   no-cache
Connection Close
Content-Length 1846
Content-Type application/json; charset=utf-8
Date Thu, 06 Sep 2012 17:48:15 GMT
Expires -1
Pragma no-cache
Server ASP.NET Development Server/10.0.0.0
X-AspNet-Version 4.0.30319

请求 header :
Accept          */*
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Cache-Control no-cache
Connection keep-alive
Content-Length 380
Content-Type application/x-www-form-urlencoded; charset=UTF-8
Cookie .ASPXAUTH=1FF35BD017B199BE629A2408B2A3DFCD4625F9E75D0C58BBD0D128D18FFDB8DA3CDCB484C80176A74C79BB001A20201C6FB9B566FEE09B1CF1D8EA128A67FCA6ABCE53BB7D80B634A407F9CE2BE436BDE3DCDC2C3E33AAA2B4670A0F04DAD13A57A7ABF600FA80C417B67C53BE3F4D0EACE5EB125BD832037E392D4ED4242CF6
DNT 1
Host localhost:39019
Pragma no-cache
Referer http://localhost:39019/Report/TripLeader
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0
X-Requested-With XMLHttpRequest

-更新-

我找到了一个临时解决方案。请参阅下面的答案。如果有人知道它为什么起作用或有更好的解决方案,请发表您的答案。谢谢。

最佳答案

好的。虽然我还没有完全理解这件事。找到了解决方法。

Global.asax中:

GlobalConfiguration.Configuration.Services.RemoveAll(
typeof(System.Web.Http.Validation.ModelValidatorProvider),
v => v is InvalidModelValidatorProvider);

我在aspnetwebstack的问题跟踪器中找到了它。这是页面的链接:

Overly aggressive validation for applying [DataMember(IsRequired=true)] to required properties with value types

如果有人可以告诉我们为什么会这样,请发表您的见解作为答案。谢谢。

关于asp.net-mvc-4 - 必需属性的数据注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12305784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com