2016-10-09 1 views
2

Ceci est mon code pour enregistrer l'identité:Aucun article owin.Environment n'a été trouvée dans le contexte dans asp mvc

[AllowAnonymous] 
public ActionResult Register() 
{ 
    var roles = db.Roles.Select(r => new { RoleID = r.Id, RoleName = r.Name }).ToList(); 
    ViewBag.Roles = new SelectList(roles, "RoleID", "RoleName"); 

    return View(); 
} 

// 
// POST: /Account/Register 
[HttpPost] 
[AllowAnonymous] 
[ValidateAntiForgeryToken] 
public async Task<ActionResult> Register(RegisterViewModel model, HttpPostedFileBase UserPhoto) 
{ 
    if (ModelState.IsValid) 
    { 
     model.DateRegister = DateTime.Now; 
     var user = new ApplicationUser 
     { 
      UserName = model.UserName, 
      Name = model.Name, 
      Family = model.Family, 
      PhoneNumber = model.PhoneNumber, 
      Gender = model.Gender, 
      BirthDay = model.BirthDay, 
      DateRegister = model.DateRegister, 
      IsActive = false, 
      Email = model.Email 
     }; 

     if (UserPhoto != null) 
     { 
      UserPhoto = Request.Files[0]; 
      var ext = System.IO.Path.GetExtension(UserPhoto.FileName); 
      if (ext == ".jpeg" || ext == ".jpg" || ext == ".png") 
      { 

       string filename = model.PhoneNumber + ext; 
       UserPhoto.SaveAs(Server.MapPath(@"~/Image/" + filename)); 
       user.UserPhoto = filename; 
      } 
     } 

     var result = await UserManager.CreateAsync(user, model.Password); 
     if (result.Succeeded) 
     { 

      await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); 
      await UserManager.AddToRoleAsync(user.Id,model.UserRoles); 
      return RedirectToAction("Index", "Home"); 
     } 
     AddErrors(result); 
    } 


    return View(model); 
} 

WebConf:

<appSettings> 
    <add key="webpages:Version" value="3.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    <add key="owin:AutomaticAppStartup" value="false" /> 
    <add key="owin:AppStartup" value="Identity_Work.Startup" /> 
</appSettings> 

Mais je reçois cette erreur:

enter image description here

Quel est le problème et comment puis-je le réparer?

+0

Vérifiez la 'Startup.cs' très probablement il ne peut pas être trouvé –

+0

Voir aussi si cela fonctionne si vous changez' ' – Nkosi

+0

Et être sûr, inclure le nom de l'assembly dans '' – Nkosi

Répondre

7

Sur la base de la conversation précédente, vous avez confirmé que

[assembly: OwinStartup(typeof(Identity_Work.Startup))] 

existe déjà dans Startup.cs.

Cela signifie qu'il n'y a plus besoin de owin:AppStartup dans le fichier web.config.

Par conséquent votre appSettings devrait ressembler à ceci.

<appSettings> 
    <add key="webpages:Version" value="3.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    <add key="owin:AutomaticAppStartup" value="true" /> <!-- This should be true --> 
</appSettings> 
+0

lorsque je l'utilise montrez-moi cette erreur: 'L'élément ViewData La clé 'UserRoles' est de type 'System.String' mais doit être de type 'IEnumerable '. ' – Kianoush

+0

ok c'est une nouvelle erreur. donc au moins l'ancien problème est maintenant corrigé. C'est une erreur associée aux données que vous passez entre le contrôleur et la vue. – Nkosi

+0

On dirait que cela a quelque chose à voir avec la liste déroulante. – Nkosi