目前我被困在一点,当客户完成其注册过程时,我想要做的是从客户的电子邮件地址创建一个 SeName 并将其存储在 UrlRecord 表中,以便我可以导航到客户的个人资料页面。以下是我迄今为止尝试过的代码。
string CustomerSeName = "";
var CustomerModel=_customerService.GetCustomerById(_workContext.CurrentCustomer.Id);
if (CustomerModel != null)
{
CustomerSeName = customer.ValidateSeName(CustomerSeName, CustomerModel.Email, true);
_urlRecordService.SaveSlug(CustomerModel, CustomerSeName, 0);
}
在上面的代码中,我得到了 CustomerModel 和 CustomerSeName 中的所有值,但是当它执行 SaveSlug() 方法时,它抛出一个 Object reference not set 错误。我不知道它缺少哪个值。如果有人知道解决方案,请帮助我。提前致谢..!
我尝试了您的代码,但无法编译。
将ISlugSupported添加到 Customer 实体并使用此代码后,一切正常
private void GenerateCurrentCustomerSlug()
{
var slug = _workContext.CurrentCustomer.ValidateSeName(seName: "", name: _workContext.CurrentCustomer.Email, ensureNotEmpty: true);
_urlRecordService.SaveSlug(_workContext.CurrentCustomer, slug, languageId: 0);
}
如果没有为当前客户设置电子邮件,上述代码也有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句