Asp.net mvc MVC寄存器方法已损坏
我正在做一个基本的MVC项目,基本上是开箱即用的,有一些小的改进。因此,我定制了一点用户属性,但没有太多。。。然而,从那时起,它似乎不再起作用了。我以前也做过同样的事情,没有出错。知道我哪里出错了吗 标识模型:Asp.net mvc MVC寄存器方法已损坏,asp.net-mvc,controller,asp.net-identity,Asp.net Mvc,Controller,Asp.net Identity,我正在做一个基本的MVC项目,基本上是开箱即用的,有一些小的改进。因此,我定制了一点用户属性,但没有太多。。。然而,从那时起,它似乎不再起作用了。我以前也做过同样的事情,没有出错。知道我哪里出错了吗 标识模型: // You can add profile data for the user by adding more properties to your ApplicationUser class, please visit https://go.microsoft.com/fwli
// You can add profile data for the user by adding more properties to your ApplicationUser class, please visit https://go.microsoft.com/fwlink/?LinkID=317594 to learn more.
public class ApplicationUser : IdentityUser
{
//public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender { get; set; }
public string DateOfBirth { get; set; }
//public string Email { get; set; }
public string PhoneNumberPrefix { get; set; }
public string PhoneNumberSuffix { get; set; }
//public string PhoneNumber { get; set; }
public bool PhoneNumberVerified { get; set; }
public string BillingAddress { get; set; }
public bool BillingAddressIsShippingAddress { get; set; }
public string ShippingAddress { get; set; }
public string VATNumber { get; set; }
public string PreferredLanguage { get; set; }
public DateTime RegisteredDateTime { get; set; }
public string RegisteredLatitude { get; set; }
public string RegisteredLongitude { get; set; }
public string RegisteredLocation { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
public class UserDbContext : IdentityDbContext<ApplicationUser>
{
public UserDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static UserDbContext Create()
{
return new UserDbContext();
}
}
//您可以通过向ApplicationUser类添加更多属性来为用户添加配置文件数据,请访问https://go.microsoft.com/fwlink/?LinkID=317594 了解更多。
公共类应用程序用户:IdentityUser
{
//公共字符串用户名{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共字符串{get;set;}
公共字符串DateOfBirth{get;set;}
//公共字符串电子邮件{get;set;}
公共字符串PhoneNumberPrefix{get;set;}
公共字符串PhoneNumberSuffix{get;set;}
//公共字符串PhoneNumber{get;set;}
公共bool phonenumberified{get;set;}
公共字符串BillingAddress{get;set;}
public bool billingaddress shippingaddress{get;set;}
公共字符串ShippingAddress{get;set;}
公共字符串编号{get;set;}
公共字符串首选语言{get;set;}
公共日期时间寄存器DDateTime{get;set;}
公共字符串registeredlatude{get;set;}
公共字符串寄存器长度{get;set;}
公共字符串注册表位置{get;set;}
公共异步任务GenerateUserIdentityAsync(UserManager klickst.);
ViewBag.Message=“Fast geschafft!您已经通过电子邮件发送了一封电子邮件,告知您的应用程序和内容输出信息。”;
//跟踪用户活动:post方法包括活动名称和时间戳以及位置
var SUCCESS=新用户活动
{
UserID=UserID,
ActivityName=“注册成功”,
ActivityTimeStampUTC=nowUTC,
ActivityLatitude=model.RegisteredLatitude,
Activity经度=model.RegisteredLongitute,
ActivityLocation=model.RegisteredLocation
};
DATADB.UserActivityList.Add(成功);
SaveChanges();
返回视图(“注册后”);
}
加法器(结果);
}
var FAILURE=新用户活动
{
UserID=UserID,
ActivityName=“注册失败”,
ActivityTimeStampUTC=nowUTC,
ActivityLatitude=model.RegisteredLatitude,
Activity经度=model.RegisteredLongitute,
ActivityLocation=model.RegisteredLocation
};
DATADB.UserActivityList.Add(失败);
SaveChanges();
//重新填充下拉列表
ViewBag.gender=DATADB.GenderList.Select(m=>newselectListItem()
{
Text=m.性别,
值=m.性别
}).ToList();
ViewBag.countryCode=DATADB.CountryCodeList.Select(m=>new SelectListItem()
{
Text=m.CountryCode,
值=m.CountryCode
}).ToList();
ViewBag.preferredLanguage=DATADB.LanguageList.Select(m=>new SelectListItem()
{
Text=m.语言,
Value=m.语言
}).ToList();
返回视图(模型);
}
对不起,我忘了提到实际的错误-主要是因为我不确定哪里出了问题..但我注意到结果是。成功部分表示“错误”-但我不确定原因。定义不再工作了
?另外,格式化-我的思维混乱-我解决了它..我必须设置userID=model.Email,它可以工作很好。
// POST: /Account/Register
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
// define variables
var userID = User.Identity.GetUserId();
DateTime nowUTC = DateTime.Now.ToUniversalTime();
DateTime nowLocal = DateTime.Now.ToLocalTime();
// check model state and submit form
if (ModelState.IsValid)
{
var user = new ApplicationUser
{
UserName = model.UserName,
FirstName = model.FirstName,
LastName = model.LastName,
Gender = model.Gender,
DateOfBirth = model.DateOfBirth,
Email = model.Email,
PhoneNumberPrefix = model.PhoneNumberPrefix,
PhoneNumberSuffix = model.PhoneNumberSuffix,
PhoneNumber = model.PhoneNumberPrefix + model.PhoneNumberSuffix,
BillingAddress = model.BillingAddress,
VATNumber = "MwSt-Nummer",
PreferredLanguage = model.PreferredLanguage,
RegisteredDateTime = nowUTC,
RegisteredLatitude = model.RegisteredLatitude,
RegisteredLongitude = model.RegisteredLongitude,
RegisteredLocation = model.RegisteredLocation
};
// send confirmation email
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
var callbackUrl = Url.Action("ConfirmEmail", "Account", new
{
userId = user.Id,
code /*= code*/
}, protocol: Request.Url.Scheme);
await UserManager.SendEmailAsync(user.Id, "Bestätige Dein Konto", "Bitte bestätige Dein Konto indem Du <a href=\"" + callbackUrl + "\">hier</a> klickst.");
ViewBag.Message = "Fast geschafft! Du hast eine Email mit weiteApplicationDbContextren Instruktionen erhalten um die Anmeldung abzuschliessen.";
// track user activity: post method includes activity name and timestamp along with location
var SUCCESS = new UserActivities
{
UserID = userID,
ActivityName = "Register_Success",
ActivityTimeStampUTC = nowUTC,
ActivityLatitude = model.RegisteredLatitude,
ActivityLongitude = model.RegisteredLongitude,
ActivityLocation = model.RegisteredLocation
};
DATADB.UserActivityList.Add(SUCCESS);
DATADB.SaveChanges();
return View("PostRegistration");
}
AddErrors(result);
}
var FAILURE = new UserActivities
{
UserID = userID,
ActivityName = "Register_Failure",
ActivityTimeStampUTC = nowUTC,
ActivityLatitude = model.RegisteredLatitude,
ActivityLongitude = model.RegisteredLongitude,
ActivityLocation = model.RegisteredLocation
};
DATADB.UserActivityList.Add(FAILURE);
DATADB.SaveChanges();
// repopulate dropdownlists
ViewBag.gender = DATADB.GenderList.Select(m => new SelectListItem()
{
Text = m.Gender,
Value = m.Gender
}).ToList();
ViewBag.countryCode = DATADB.CountryCodeList.Select(m => new SelectListItem()
{
Text = m.CountryCode,
Value = m.CountryCode
}).ToList();
ViewBag.preferredLanguage = DATADB.LanguageList.Select(m => new SelectListItem()
{
Text = m.Language,
Value = m.Language
}).ToList();
return View(model);
}