将网页添加到ASP.Net应用程序

时间:2015-01-20 03:17:23

标签: c# asp.net-mvc

我意识到这是一个非常基本的,可能是愚蠢的问题。

我是第一次在asp.net上组建一个网站,我遇到了RedirectToAction问题。

我已经添加了一个cshtml页面来测试重定向到,并且无法找到该文件。

在〜/ View / Shared

我已经添加了Test.cshtml。

在验证登录/身份验证时,我尝试使用以下内容更新方法....

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {
        if (!ModelState.IsValid)
        {
            return View(model);
        }

        // This doesn't count login failures towards account lockout
        // To enable password failures to trigger account lockout, change to shouldLockout: true
        var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);

        switch (result)
        {
            case SignInStatus.Success:
                return RedirectToAction("Test", "Home");
                //return RedirectToLocal(returnUrl);
            case SignInStatus.LockedOut:
                return View("Lockout");
            case SignInStatus.RequiresVerification:
                return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
            case SignInStatus.Failure:
                return RedirectToLocal(returnUrl);
            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return View(model);
        }
    }

我已添加以下内容,如上所示。

RedirectToAction("Test", "Home");

然而,每次我尝试运行代码时,我都会得到一个     &#39; /&#39;中的服务器错误应用

然后说它找不到/ Home / Test ..

意识到这是我第一次尝试使用asp.net和MVC,我有点困惑为什么一个简单的重定向语句无法找到该网页。

我在做什么愚蠢的?

1 个答案:

答案 0 :(得分:2)

通过返回RedirectToAction("Test", "Home"),您实际上是在设置Test.cshtml时重定向到某个操作,而不是视图。要响应/ home / test,您需要一个带有Test操作的HomeController对象来处理请求。要在共享后返回您的视图,您可以让您的方法返回View("Test"),这将在您的共享目录中找到您的test.cshtml文件。

MVC在惯例上运作很大。如果您希望/Home/Test响应重定向请求(特别是`RedirectToAction(“Test”,“Home”),您需要做一些事情:

  1. HomeController控制器(假设{ControllerName} / {ActionName}的默认MVC路由
  2. Test返回视图的操作方法(偶数return View()很好)
  3. 在项目的Views \ Home文件夹中,包含您的视图的Test.cshtml文件。