如何在此特定的ASP.NET MVC场景中正确使用C#属性?

时间:2017-02-14 20:44:49

标签: c# asp.net-mvc razor asp.net-mvc-5 asp.net-mvc-viewmodel

我的视图模型中定义了属性,如此 -

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)  

虽然我可以设置全名并在页面加载时在文本框中显示,但我无法在提交表单时检索该值。

我需要在更改值时从此文本框中检索值。 我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

这取决于你在这里想做什么..

如果你想能够设置&#34; FullName属性只是将字符串拆分为块并将这些值分配给FirstNameLastName,您就这样做了(而不是使用属性&#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;属性就像你一样(在我看来)。