模型结果中的计算属性请求的属性不存在

时间:2014-10-27 09:38:52

标签: c# model-view-controller linq-to-ldap

在AD中更新用户时遇到问题

我的模特:

public class UserModel
{
    ....
    [ScaffoldColumn(false)]
    [DisplayName("Fødselsdag")]
    [DataType(DataType.Date)]
    [NotMapped]
    public DateTime extensionAttribute1_date
    {
    get
    {
         try
         {
              return DateTime.Parse(extensionAttribute1);
         }
         catch (Exception e)
         {
              return new DateTime();
          }
      }
      set { }
    }
    }

我的控制器:

[HttpPost]
        public ActionResult Edit(string sAMAccountName, FormCollection collection, UserModel data)
        {
            if (ModelState.IsValid)
            {
                var config = new LdapConfiguration();
                config.ConfigureFactory("domain.local").AuthenticateAs(new NetworkCredential("xxxx", "xxxxx"));
                using (var context = new DirectoryContext(config))
                {
                    var user = context.Query(new UserModel(), "OU=users,OU=xxx,DC=xxx,DC=dk", "User").FirstOrDefault(d => d.sAMAccountName == sAMAccountName);

                    if (user == null) return RedirectToAction("Index");

                    user.title = data.title;
                    user.mobile = data.mobile;
                    user.homePhone = data.homePhone;
                    user.streetAddress = data.streetAddress;
                    user.postalCode = data.postalCode;
                    user.l = data.l;
                    user.department = data.department;
                    user.physicalDeliveryOfficeName = data.physicalDeliveryOfficeName;
                    user.extensionAttribute1 = data.extensionAttribute1_date.ToLongDateString();

                    context.Update(user);
                }

                return RedirectToAction("Index");
            }

            return View();
        }

当我提交给编辑操作时,我会导致错误: 请求的属性不存在。

如果我从模型中删除extensionAttribute1_date我更新正常。

如何从更新中排除我的计算属性?

我在模型中有其他属性,例如Age,这是计算出来的!这是错误的程序吗?

/迈克尔

0 个答案:

没有答案