Lam*_*fif 20 .net c# asp.net asp.net-mvc razor
我有这个代码:
using Solutionsecurity.web.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
namespace Solutionsecurity.web.Controllers
{
public class HomeController : Controller
{
public ActionResult Login() {
return View(new User());
}
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(User u, string ReturnUrl) {
if (Membership.ValidateUser(u.login, u.password))
{
return RedirectToLocal(ReturnUrl);
}
else {
return View(u);
}
}
[Authorize]
public ActionResult Common()
{
return View();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么RedirectToLocal没找到!!! 在这一行:
return RedirectToLocal(ReturnUrl);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Dis*_*ile 39
RedirectToLocal不是框架的一部分.它被添加到帐户控制器的一些MVC模板中:
这取自MVC5模板AccountController:
private ActionResult RedirectToLocal(string returnUrl)
{
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
Run Code Online (Sandbox Code Playgroud)
如果您希望在所有控制器中使用此方法,则可以轻松地将其作为受保护方法添加到基本控制器中,并使所有控制器都从该基础继承:
public abstract class BaseController : Controller
{
protected ActionResult RedirectToLocal(string returnUrl)
{
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
}
public class HomeController : BaseController
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8133 次 |
| 最近记录: |