我的视图模型中定义了属性,如此 -
public string FullName
{
get { return FirstName + " " + LastName; }
set {
FirstName = FullName.Split(null)[0];
LastName = FullName.Split(null)[1];
}
}
public string FirstName { get; set; }
public string LastName { get; set; }
我的剃刀视图有这个 -
<label for="FullName">Name</label>
@Html.TextBox("FullName", Model.FullName)
虽然我可以设置全名并在页面加载时在文本框中显示,但我无法在提交表单时检索该值。
我需要在更改值时从此文本框中检索值。 我在这里做错了什么?
答案 0 :(得分:0)
这取决于你在这里想做什么..
如果你想能够设置&#34; FullName
属性只是将字符串拆分为块并将这些值分配给FirstName
和LastName
,您就这样做了(而不是使用属性&#39; s名称本身):
public string FullName
{
get { return FirstName + " " + LastName; }
set
{
this.FirstName = value.Split(null)[0];
this.LastName = value.Split(null)[1];
}
}
您的代码中的问题是您尝试使用FullName
setter作为构造函数,而实际上应该单独设置First和LastName属性,而FullName
应该只是拥有get;
属性就像你一样(在我看来)。