C# 复杂类型的隐藏
在我们的应用程序中,我们有一个C# 复杂类型的隐藏,c#,asp.net-mvc,razor,html-helper,C#,Asp.net Mvc,Razor,Html Helper,在我们的应用程序中,我们有一个CatalogValue的概念,它具有ID和DisplayText等属性 我们有一个TypeConverter,允许modelbinder将ID转换为CatalogValue的一个实例,到目前为止一切正常 但是,当我们呈现一个HiddenFor而不是EditorFor时,它就不再工作了,因为隐藏输入字段的值是My.Namespace.SomeCatalogValueType而不是目录值的ID。这听起来很合乎逻辑,因为MVC不知道它应该使用ID 那么,如何告诉ASP.
CatalogValue
的概念,它具有ID
和DisplayText
等属性
我们有一个TypeConverter
,允许modelbinder将ID转换为CatalogValue
的一个实例,到目前为止一切正常
但是,当我们呈现一个HiddenFor
而不是EditorFor
时,它就不再工作了,因为隐藏输入字段的值是My.Namespace.SomeCatalogValueType
而不是目录值的ID。这听起来很合乎逻辑,因为MVC不知道它应该使用ID
那么,如何告诉ASP.NET MVC将ID呈现为值呢?是否有我们必须实现的接口?它正在调用ToString()
目前,我们有了这种奇怪的解决方法,我们希望替换:
@Html.HiddenFor(x => x[i].BrennstoffArt, htmlAttributes: new { Value = @Model[i].BrennstoffArt.Id })
其中,BrennstoffArt
是类型为BrennstoffArt目录值
的属性