【发布时间】:2015-02-26 07:59:26
【问题描述】:
如果我在模型中使用不可变结构,即:
public struct ImmutableStruct
{
private readonly int firstProperty;
public ImmutableStruct(int firstProperty) : this()
{
this.firstProperty = firstProperty
}
public int FirstProperty { get { return firstProperty; } }
}
模型片段:
public class SomeModel
{
public ImmutableStruct structProperty { get; set; }
}
视图片段:
@model SomeModel
<div>
@Html.EditorFor(x = x.structProperty.FirstProperty)
</div>
模型绑定器在回发到控制器时似乎无法绑定任何数据。这是否意味着 (1) 不应该使用不可变结构,(2) 需要使用自定义模型绑定器,(3) 或者我需要做其他事情?
【问题讨论】:
-
你在什么情况下使用这个?您是否尝试绑定到
ImmutableStruct类型的属性? -
是的,我添加了一些代码片段来澄清。
-
正如 AaronLS 在下面指出的那样,您需要一个无参数的构造函数,并且在任何情况下都需要一个 setter 将 a 绑定到回发时的属性。不太清楚你想用这个实现什么。
-
我们的项目有一些我们想挂接到 MVC 的遗留结构,它们与此类似(除了它们有多个属性)。不确定最合适的行动方案。
标签: c# asp.net-mvc