【问题标题】:ASP.NET C# Response.Write doesn't display messageASP.NET C# Response.Write 不显示消息
【发布时间】:2021-01-29 16:23:59
【问题描述】:

所以有人告诉我,只要在 Response.Write 方法中使用 Javascript,我就可以在 ASP.NET C# 上显示一个警报/消息框。

使用Response.Write("<script>alert('Data inserted successfully')</script>")作为其他答案中给出的模板。

当我第一次尝试使用它时,它可以正常工作,显示消息并成功重定向我。从那以后,它就没有用了,我只更改了要显示的消息以及重定向 URL 的位置。从逻辑上讲,它正在工作,因为它将我带回申请表,只是没有显示消息。

谁能解释一下为什么突然不行了?

代码;

        public ActionResult UpdateApplication(int ApplicationId, ApplicationEdit applicationEdit)
    {
        if(applicationEdit.Firm == false)
        try
        {
            applicationService.UpdateApplication(applicationEdit, ApplicationId);
            return RedirectToAction("GetUser", "User", new { ApplicationId = applicationEdit.ApplicationId });
        }
        catch
        {
            return View();
        }
        else
        {
            Response.Write("<script language=javascript>alert('Sorry, You can only have 1 firm application to send off, please update the old application and untick firm option on other application first.')</script>");
            return RedirectToAction("UpdateApplication", new { ApplicationId = applicationEdit.ApplicationId });
        }
    }

【问题讨论】:

  • 你不能一步到位Response.WriteRedirect。如果服务器返回 302 重定向,则页面正文被浏览器忽略。我怀疑它曾经奏效过。
  • @WiktorZychla 我明白我的错误了,谢谢!我只需要返回视图,不需要重定向,不知道为什么我没有看到这个

标签: c# asp.net-mvc


【解决方案1】:

因为您正在重定向用户:

return RedirectToAction("UpdateApplication", new { ApplicationId = applicationEdit.ApplicationId });

这会向浏览器返回一个重定向 HTTP 代码(我想是 HTTP 307 或 308),它告诉浏览器将用户定向到指定的 URL。由于浏览器知道它正在重定向用户,它没有理由在响应中呈现任何内容。

返回要在浏览器中呈现的内容返回重定向响应,但不能同时返回。如果您返回视图,那么您应该在结果响应中看到您的 &lt;script&gt; 元素。如果您想重定向,那么您想向用户显示的任何消息都应该在下一页上,而不是在当前响应中。


顺便说一句,在 ASP.NET MVC 应用程序中使用Response.Write几乎总是错误的方法。任何客户端代码都应该在视图中或被视图引用,并且您可以使用视图模型上的数据来有条件地呈现或不呈现该内容。

【讨论】:

  • 我意识到我不需要像你所说的那样重定向。只需要返回视图来更新我现在正在工作的应用程序。我确实阅读了为什么使用 Response.Write 不好,最好为消息框创建一个类。当我觉得这样做时,我会尝试实现它。感谢您的帮助!
  • 只是指向 ASP 重定向是 302 而不是 307 的节点。308 是永久重定向。
猜你喜欢
  • 2013-06-06
  • 1970-01-01
  • 2019-05-23
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多