2011-12-19 12 views
0

おはようございます。@Html.action私は@Html.actionを使用して、Acitveディレクトリのユーザを表示します。ポストは2つのコントローラ、新しいユーザ用のコントローラ、ユーザーのリストを作成するには、投稿を行うためのいくつかの方法があります コントローラでのみ発生新しいユーザーですか? 私は@Html.BeginForm ("New", "Users")) を使ってみましたが、成功しませんでした。もしあなたがそれを解決する方法があれば?これを行うコントローラを1つだけポストしてくださいmvc razor

この私のコードと新しいユーザー

[HttpPost] 
    public ActionResult Novo(NovoViewModel novoViewModel) 
    { 



     //Validações de autenticação 
     if (_authenticationService.IsUserRegistered(novoViewModel.NomeUsuario)) 
     { 
      ModelState.AddModelError("ExistingUsername", String.Format(ViewModelValidations.ExistingUsername, "Usuário")); 
     } 

     if (_usuarioRepository.ObtemPorEmail(novoViewModel.Email) != null) 
     { 
      ModelState.AddModelError("ExistingEmail", String.Format(ViewModelValidations.ExistingEmail, "Email")); 
     } 

     if (ModelState.IsValid) 
     { 
      IList<Perfil> perfisSelecionados = new List<Perfil>(); 
      novoViewModel.PerfisSelecionados.ToList().Select(x => _perfilRepository.ObterPorId(x)).ToList(). 
       ForEach(perfisSelecionados.Add); 

      Usuario usuario = new Usuario() 
            { 
             Nome = novoViewModel.Nome, 
             Email = novoViewModel.Email, 
             Telefone = novoViewModel.Telefone, 
             DataNascimento = Convert.ToDateTime(novoViewModel.DataNascimento), 
             Sexo = 
              !String.IsNullOrEmpty(novoViewModel.SexoSelecionado) 
               ? (Sexo?)(Convert.ToByte(novoViewModel.SexoSelecionado)) 
               : null, 
             Credencial = new Credencial() 
                 { 
                  NomeUsuario = novoViewModel.NomeUsuario, 

                  Status = 
                   (Status) 
                   Convert.ToByte(novoViewModel.StatusSelecionado), 
                  Perfis = perfisSelecionados 
                 } 
            }; 

      _usuarioRepository.Adicionar(usuario); 

      _dbContext.SaveChanges(); 

      return RedirectToAction("Index"); 
     } 

     novoViewModel.Sexos = GetSexos(); 
     novoViewModel.Status = GetStatus(); 
     novoViewModel.Perfis = GetPerfis(); 

     return View(novoViewModel); 


    } 
+1

私たちに新しいユーザーのためのコードを教えてください – archil

答えて

1

@Html.BeginForm("New", "Users"))ユーザーのコントローラ内のアクション新に掲載します。あなたはNEWUSERコントローラに投稿したい場合は、代わりにこれを持っている必要があります。

@Html.BeginForm("ActionName", "NewUsers")) 
+0

は動作しませんでした。投稿者がまだすべてのユーザーの のリストを作成するコントローラを経由しているときに発生します。新しいユーザーと不足している銃器が必要なフィールドがモデルエラーに追加され、現在Retronにエラーメッセージが追加されている場合を除き、 のユーザーを求めるアクションは、 ユーザーを探す方法の投稿ですこの問題は見えなくなってしまいます。 –

0

をあなたがコード

if (ModelState.IsValid) 
{ 
    ...... 
    ...... 

    return RedirectToAction("Index"); 
} 

POSTがNEWUSERアクションを通過するとき、これは、意味、および情報が有効である、それを持っていますインデックスアクション(RedirectToAction("Index"))にリダイレクトされます。ブラウザがリダイレクトコマンドを受信すると、がサイレントモードになり、新しく新鮮な要求がすべてインデックスアクションに自動的に発行されます。また、この2番目のサイレントと自動の要求により、NewUserへのPOSTがIndexアクションを通過すると思われる可能性があります。実際、そうではありません。 return RedirectToAction("Index");

+0

は動作しませんでした。ポストがまだコントローラの中を移動していて、すべてのユーザーのリストを作成しています。ユーザー名を求めるアクションで起きています...例 新しいユーザーと不足しているalgun必要なフィールドはモデルエラーとモデルRetronにエラーメッセージを追加するこの時点では、 を探す方法での投稿があります。 –

+0

@Borracha申し訳ありませんが、あなたが言うことを理解しようとするのは本当に不可能です – archil

関連する問題