Is there any other way to display alert message from back end in asp.net web application rather than this.
ScriptManager.RegisterStartupScript(this, GetType(), "alertMessage","alert('Called from code-behind directly!');", true);
I have included using System.Web.UI
namespace also, but still am getting these 2 errors with this code:
First error:
The best overloaded method match for 'System.Web.UI.ScriptManager.RegisterStartupScript(System.Web.UI.Page, System.Type, string, string, bool)' has some invalid arguments D:\my_backup\Demos\NewShop\NewShop\API\ProductAPIController.cs 85 17 NewShop
Second error:
Argument 1: cannot convert from 'NewShop.API.ProductAPIController' to 'System.Web.UI.Page' D:\my_backup\Demos\NewShop\NewShop\API\ProductAPIController.cs 85 53 NewShop
The error messages tell you what is wrong. The RegisterStartupScript
method requires a first argument of type System.Web.UI.Page
, which is used in ASP.NET WebForms. Instead you are passing this
as the first argument, which is a Controller
class, which is used in ASP.NET MVC!
That means the code you are using is meant for another web architecture. To control JavaScript output from a Controller, you are much better off using the Model
or maybe ViewBag
. Like this:
In your controller code
ViewBag.ShowAlert = true;
In your view
@if (ViewBag.ShowAlert)
{
<script>alert("(Almost) called from code-behind");</script>
}
If you need full control over the script that is rendered, save the script as a string in the ViewBag, even though this is definitely not recommended!
In your controller code
ViewBag.SomeScript = "alert('Added by the controller');";
In your view
@if (ViewBag.SomeScript != null)
{
<script>@Html.Raw(ViewBag.SomeScript)</script>
}