4

嗨,我正在尝试在创建帐户后重定向到新控制器,但由于某种原因,代码不起作用。这是我的代码:

[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")但都不起作用。在调试时,我注意到当它到达代码的那部分时,它会跳过它。

而且我知道应用程序不会抛出异常,因为它会创建帐户。

这里有什么问题?

4

1 回答 1

5

您必须从您的操作中返回一个ActionResult,因此将行更改为

return RedirectToAction("AccountCreated" , "Account");

请参阅Controller.RedirectToAction的 MSDN 示例。

于 2012-12-26T20:25:35.977 回答