我有这段代码:
public ActionResult Create()
{
if (dbcontext.SettingConfs.First().offlineState == "true")
{
TempData["Error"] = "ژمان ثبت نام به پایان رسیده است ";
RedirectToAction("login", "Account");
return View();
}
else if (User.IsInRole("Admin"))
{
return View("Create");
}
else if (dbcontext.SettingConfs.First().offlineState == "true")
{
return View("Create");
}
else
{
return View();
}
}
在第一个if statement
我检查了offlineState
如果它是真的我应该将控制器重定向到account
控制器。但是它不起作用并且mvc返回我的视图(即创建视图)但我需要重定向到login
控制器中的account
操作。问题出在哪里。?
我的login view
:
@model EducationMVC.Models.LoginModel
@{
ViewBag.Title = "ورود به سامانه";
Layout = "~/Views/Shared/_LayoutLogin.cshtml";
}
@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div id="wrapper-right">
<div id="text-product"></div>
</div>
<div id="wrapper-left">
<div id="wrapper-login">
<div class="rows-input-login">
<span style="font:normal 13px BYekan;color:#252525">
نام کاربری :
</span>
@Html.TextBoxFor(m => m.UserName, new {@class = "username"})
<div style="float:left;font:normal 11px tahoma;color:#ea0000;padding-top:8px;padding-left:5px;margin-top:-85px">
@Html.ValidationMessageFor(m => m.UserName)
</div>
</div>
<div class="rows-input-login" style="margin-top:10px;">
<span style="font:normal 13px BYekan;color:#252525">
رمز عبور :
</span>
@Html.PasswordFor(m => m.Password)
<div style="float:left;font:normal 11px tahoma;color:#ea0000;padding-top:8px;padding-left:5px;margin-top:-85px">
@Html.ValidationMessageFor(m => m.Password)
</div>
</div>
<div class="rows-input-login" style="margin-top: 20px">
<div id="row-right">
<div class="rows-input-login" style="height:30px;">
@if (TempData.ContainsKey("Message"))
{
<div class="wrapper-error" style="background: transparent; color: green">
@TempData["Message"]
</div>
}
</div>
</div>
<div id="row-left">
<input type="submit" value="ورود" class="button-caution"/>
</div>
</div>
<div class="rows-input-login" style="margin-top:10px;">
@if (TempData.ContainsKey("Error"))
{
<div class="wrapper-error" style="background: transparent;font-size:11px; color: #ea0000">
@TempData["Error"]
</div>
}
</div>
</div>
</div>
}
最好的问候
答案 0 :(得分:2)
将您的if
条件更改为此,您不会再次RedirectToAction
返回View
,因为显示的是View的原因,而不是重定向。对于重定向,您需要写{{1} }}:
return RedirectToAction("Action","Controller")
更多了解Visit this link
答案 1 :(得分:1)
RedirectToAction("login", "Account");
return View();
将其更改为:
return RedirectToAction("login", "Account");
答案 2 :(得分:1)
只写:
return RedirectToAction("login", "Account");
答案 3 :(得分:1)
试试这个:
return RedirectToAction("login", "Account");
我希望这会有所帮助