您好我在创建帐户后尝试重定向到新控制器,但由于某种原因,代码无效。这是我的代码:
[HttpPost]
public ActionResult Register(Register model)
{
if(ModelState.IsValid)
{
try
{
Membership.CreateUser(model.Username, model.Password, model.EMail);
Roles.AddUserToRole(model.Username, "subscriber");
RedirectToAction("AccountCreated" , "Account");
}
catch(Exception ex)
{
ModelState.AddModelError("" , ex.Message);
}
}
else
{
ModelState.AddModelError("" , "One or more fields are not completed");
}
return View(model);
}
public ActionResult AccountCreated()
{
return View();
}
我已经尝试了RedirectToAction("AccountCreated" , "Account");
和Redirect("~/Account/AccountCreated")
,但两者都不起作用。在进行调试时,我注意到当它到达代码的那一部分时,它会跳过它。
我知道应用程序不会抛出异常,因为它会创建帐户。
这里有什么问题?
答案 0 :(得分:5)
您必须从操作中返回ActionResult
,因此请将行更改为
return RedirectToAction("AccountCreated" , "Account");
请参阅Controller.RedirectToAction的MSDN示例。