重定向到控制器中的操作';不起作用

本文关键字:不起作用 操作 控制器 重定向 | 更新日期: 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");

我希望这能帮助