簡體   English   中英

In Expressive Annotations using the AssertThat attribute - 如何在運行時修改錯誤消息或傳入字符串值

[英]In Expressive Annotations using the AssertThat attribute - how to modify the error message at runtime or pass in string values

在 Expressive Annotations 中,使用“AssertThat”屬性是否可以在運行時修改錯誤消息? 我在 ASP.NET MVC Classic 環境中工作,需要添加到我現有的驗證中。 新的驗證將檢查輸入的日期是否在特定日期范圍內,我想在錯誤消息中包含邊界日期,但日期不是常量並且可以更改(每 3-4 個月)。 問題是“AssertThat”ErrorMessage 屬性似乎只允許常量字符串。

代碼看起來像這樣

[AssertThat ("!IsDateBeforeDataRange(BeginDate.Value)"
, ErrorMessage ="Requested Date is prior to data ingest range ")]
public DateMvcModel BeginDate { get; set; }

這可行,但我想將實際日期邊界合並到錯誤消息中,如下所示:

[AssertThat ("!IsDateBeforeDataRange(BeginDate.Value)"
, ErrorMessage ="Requested Date is prior to data ingest range{IngestDataDtBegnin} ")] 

但這是不允許的。 在“AssertThat”的示例中,默認錯誤消息確實包含字符串插值,但我不知道如何傳遞我自己的值。

OP 有點晚了,但是可以做到這一點,在第二個代碼段中使用大括號語法。

訣竅是日期必須存儲在屬性中,並發布到操作中。

如果日期屬性已在您的視圖中使用,它應該可以正常工作,但如果它是當前未顯示在您的視圖中的值,您需要將其存儲在隱藏字段中,以便該值可用於客戶端和服務器端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM