重定向到控制器中的操作';不起作用
本文关键字:不起作用 操作 控制器 重定向 | 更新日期: 2023-09-27 18:13:57
我有这个代码:
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返回My view(即创建视图(,但我需要重定向到account
控制器中的login
操作。问题出在哪里。?
我的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>
}
向致以最良好的问候
将您的if
条件更改为此,您没有重新字符串RedirectToAction
,而是返回View
,这就是显示View而不是重定向的原因。对于重定向,您必须编写return RedirectToAction("Action","Controller")
:
if (dbcontext.SettingConfs.First().offlineState == "true")
{
TempData["Error"] = "ژمان ثبت نام به پایان رسیده است ";
return RedirectToAction("login", "Account");
}
欲了解更多信息,请访问此链接
RedirectToAction("login", "Account");
return View();
更改为:
return RedirectToAction("login", "Account");
只写:
return RedirectToAction("login", "Account");
试试这个:
return RedirectToAction("login", "Account");
我希望这能帮助