我正在使用ASP.Net MVC4 Razor 。我遇到了重定向的问题。我想在用户登录时将用户重定向到Home控制器(如果登录有效)。 但我的问题是它总是回到登录页面,即使重定向meythod也被解雇了。
这是我的代码..
public class LoginController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult LoginAccess()
{
return RedirectToAction("Index", "Home");
}
}
登录页面..
<div class="body_wraper">
<div id="cloud" style="background:url('@Url.Content("~\\Content\\cloud.png")');">
<div id="login_form">
<div class="Three-Dee">Login here..</div>
<table>
<tbody>
<tr>
<td>@Html.Label("Username")</td>
<td></td>
<td>@Html.TextBox("txtUsername")</td>
</tr>
<tr>
<td>@Html.Label("Password")</td>
<td></td>
<td>@Html.Password("txtPassword")</td>
</tr>
<tr>
<td></td>
<td></td>
<td style="text-align:right;"><button class="k-button" id="login" onclick="Login()">Login</button></td>
</tr>
</tbody>
</table>
</div>
</div>
<script type="text/javascript">
function Login() {
$.ajax({
url: '@Url.Content("~/Login/LoginAccess")',
type: 'POST'
});
}
Home Controller ..
public ActionResult Index()
{
Session["UserName"] = "Administrator";
string menu = this.GetMenu();
ViewBag.ManueItems = menu;
return View("User");
}
在点击登录按钮后,它来到 LoginAccess in Login controller ,然后进入 Home controller Index 方法,但是不查看“用户视图”。 但是当我用打字网址&gt;&gt;(主机__ /登录/登录访问“&gt; http:// __ 主机 __ /登录/登录访问< strong>)它正常工作。 请帮我解决这个问题。 谢谢.. :))
答案 0 :(得分:1)
您可能在此处滥用Ajax功能
你应该使用 @ Html.ActionLink(“登录”,“登录访问”,“登录”)
Ajax最初用于从服务器端获取某些内容,而不是影响当前浏览页面。
答案 1 :(得分:1)
试试这个
return redirect("/Home/Index")
答案 2 :(得分:0)
当您进行Ajax
次呼叫时,您无法强制从控制器重定向。您可以通过两种方式解决此问题:
答案 3 :(得分:0)
你可以试试这个
var result = new ControllerName().YourAction();