0
MVC 응용 프로그램이 있습니다.MVC, 다른보기로 리디렉션되는 동안 MVC, 임시 (5 초) 메시지 표시 방법을 표시하는 방법
부분보기 _B를 렌더링하는보기 A가 있습니다. 보기 A는 부분보기 _B하지 보여줄 때 정의하는 논리가 : 나는 내가 5 초 동안 div
리디렉션 표시하는 데 도움이 다음 MainPage로 리디렉션됩니다 솔루션을 찾고 있어요
@if (!(bool)ViewData["PasswordChanged"])
{
<div style="margin-top:20px;">
<div>
@Html.Partial("~/Views/_B.cshtml");
</div>
</div>
}
else
{
<div id="redirect" style="margin-top:20px;">
<div style="color:green;">
@ViewBag.Message
</div>
<div>
Please wait while you are redirected...
</div>
</div>
을 View
.
다음은 양식 제출시 호출되는 메소드입니다. 이 방법에서는 아마도 withRedirect
플래그가 true 일 때 어떤 종류의 논리가 필요합니다. 현재는 MainPage
으로 리디렉션 중이지만 Redirection Success
메시지를 5 초 동안 표시해야합니다.
[HttpPost]
public ActionResult Index(ChangePasswordModel model, string returnUrl*/)
{
ViewData["PasswordChanged"] = false;
bool withRedirect = Convert.ToBoolean(Session["WithRedirect"].ToString());
if (ModelState.IsValid)
{
string currentPassword = model.CurrentPassword;
string newPassword = model.NewPassword;
string confirmPassword = model.ConfirmPassword;
if (ChangePasswordModel.IsPasswordValid(newPassword))
{
try
{
ChangePasswordModel cpm = ChangePasswordModel.ChangePassword(model);
if (cpm.SuccessMessage.Length > 0)
{
ViewData["PasswordChanged"] = true;
ViewBag.Message = cpm.SuccessMessage;
if (withRedirect)
{
return Redirect(returnUrl ?? Url.Action("Index", "MainPage"));
}
}
else
{
ModelState.AddModelError("", cpm.FailMessage);
}
}
catch(Exception error)
{
ModelState.AddModelError("", error.Message);
}
}
else
{
ModelState.AddModelError("", "New password does not meet minimum requirements");
}
}
if (withRedirect)
{
return View("ForceChangePassword");
}
else
{
return View("ChangePassword");
}
}
가 어떻게 컨트롤러에서 MVC
사용 아약스 양식을 보낼 수 있습니다. 멋진 사용자 경험을 제공하면서 javascript를 사용하여 멋진 메시지를 보여줄 수 있으며'setTimeout'을 사용하여 5 초 후에 리디렉션 – Shyju
타이머를 실행하기 위해 JavaScript를 사용하고'window.location = url' 리디렉션 만하면됩니다. 페이지로드 이벤트에서이 작업을 수행 할 수 있습니다. – Jasen
위와 일치하는 js 리디렉션을 처리하는 데 동의합니다. ajax를 통해 양식을 게시 한 다음 성공 (Shyju가 말하는 것처럼)에서 리디렉션하거나 일반 양식 게시물을 수행 할 수 있고 5 초 동안 반환 페이지가 표시되고 그 페이지에서 js를 사용하여 리디렉션됩니다. – nurdyguy