美好的一天..
我正在使用@Html.action
列出Acitve目录的用户,Post发生时它通过两个控制器,新用户的控制器,以及制作User列表的控制器,你有一些方法来制作岗位
只发生在控制器新用户?
我尝试使用@Html.BeginForm ("New", "Users"))
但没有成功..如果你有办法解决它......?
这是我的代码和新用户
[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);
}
答案 0 :(得分:1)
@Html.BeginForm("New", "Users"))
将发布到Users控制器中的新操作。如果你想发布到NewUser控制器,你应该改为:
@Html.BeginForm("ActionName", "NewUsers"))
答案 1 :(得分:0)
你有代码
if (ModelState.IsValid)
{
......
......
return RedirectToAction("Index");
}
这意味着,当POST通过NewUser操作并且信息有效时,它会重定向到索引操作(RedirectToAction("Index")
)。当浏览器收到重定向命令时,它默默地自动向Index操作发出所有新的新请求。而第二个,静默和自动请求可能会导致您认为POST到NewUser也会通过Index操作。事实上,它没有。这只是由return RedirectToAction("Index");