警告框像计算器动态数据(Alert box like stackoverflow dynamic d

2019-10-17 22:29发布

要添加一个警告框,像计算器。 我看到一些很好的例子,但不是我想要的东西。 我想这是出现在不同的场合不同的消息。

恩。 我想从C#,当用户登录密码这条消息。 此外,当用户下订单。 什么是错的。

这个答案是好的,但该消息出现在页面加载。 另一个例子表现出同样的。

Answer 1:

您需要创建一个generic-http-handlerweb servicepage-method并调用它通过jQuery ,并显示警告消息。

创建这样一个处理程序

  public class VideoViewValidation : IHttpHandler
  {
      public void ProcessRequest(HttpContext context)
      {
           string videoID = string.Empty;
           string id = context.Request["Id"];
           context.Response.Writ("your message");
      }
}

并调用它通过jQuery的按钮点击客户端

$.ajax({
        url: 'VideoViewValidation.ashx',
         type: 'POST',
          data: { 'Id': '10000', 'Type': 'Employee' },
          contentType: 'application/json;charset=utf-8',
          success: function (data) {
                    alert('Server Method is called successfully.' + data.d);
                },
          error: function (errorText) {
                alert('Server Method is not called due to ' + errorText);
          }
       });


Answer 2:

如果你不想做它在页面加载,但你希望它被后面的代码驱动(C#),你需要使用AJAX。

使用jQuery这是很容易做类似下面的完成(这是我的通用的“执行此控制器上这一行动”在ASP.NET MVC):

 <script type="text/javascript">
 function execute(controller, action) {
        $.ajax({
            type: 'get',
            url: ('/' + controller + '/' + action),
            dataType: 'text'
        }).done(function (data, textStatus, jqXHR) {
            $('#response').html(data).slideDown();
        }).fail(function (jqXHR, textStatus, errorThrown) {
            $('#response').html(jqXHR.responseText).slideDown();
        });
    }
 </script>

您可以扩大这一点通过你需要的任何数据的任何URL,你需要如:

 <script type="text/javascript">
 function execute(controller, action, username, password) {
        $.ajax({
            type: 'get',
            url: ('/' + controller + '/' + action),
            dataType: 'text',
            data: ('username='+username+'&password='+password)
        }).done(function (data, textStatus, jqXHR) {
            $('#response').html(data).slideDown();
        }).fail(function (jqXHR, textStatus, errorThrown) {
            $('#response').html(jqXHR.responseText).slideDown();
        });
    }
 </script>

在服务器端,你可以返回你想要的回应说什么的字符串,如“成功!你在被记录!” 然后id'ed“响应”的元件将具有其内HTML换出与该响应,然后将被打开滑动:

 <div id="response" style="display:none"></div>

请注意,.fail()事件将推动出整个错误页面,如果你不只是在返回抛出的异常的字符串,你会扔掉。 .fail()将触发如果来自服务器的HTTP状态代码不是200(OK)。

如果您使用ASP.NET MVC C#代码可以是这样的:

 namespace MySite.Controllers
 {
     public class SomeController : Controller
     {
          public string Login(string username, string password){
               // Process login
               return "You've been logged in!";
          }
     }
 }

如果您使用Web表单:

 //On Page_Load() call a function if it's an AJAX Login
 // such as 
 if(Request["ajax"] == "login"){
       AjaxLogin(Request["username"], Request["password"]);
 }

 private void AjaxLogin(string username, string password){
      // Process login
      Response.Write("Ajax login complete!");
      Response.End(); // Don't send anything else and stop processing request.
 }

然后调用它简单的变量传递给你的函数:

 <a onclick="execute('MyController', 'Login', 'UserName', 'MyPass')">Login!</a>

显然,这假设你有你需要的过程中,他们进入之前的登录请求,这将是一个有点弄巧成拙,所以你可以使用jQuery抢表单元素的内容,如延伸出一个特定函数的数据:

 <input type="text" name="username" id="username" />
 <input type="text" name="password" id="password" />

然后在你的函数中添加:

 <script type="text/javascript">
 function login(controller, action) {

      var username = document.getElementById('username').value;
      var password = document.getElementById('password').value;

        $.ajax({
            type: 'get',
            url: ('/' + controller + '/' + action),
            dataType: 'text',
            data: ('username='+username+'&password='+password)
        }).done(function (data, textStatus, jqXHR) {
            $('#response').html(data).slideDown();
        }).fail(function (jqXHR, textStatus, errorThrown) {
            $('#response').html(jqXHR.responseText).slideDown();
        });
    }
 </script>


Answer 3:

尝试这个

public void message(string msg)
{
    ScriptManager.RegisterClientScriptBlock(this, GetType(), "Done", "alert('" + msg + "');", true);
}

使用此方法

message("You are logged in sucessfully.");



文章来源: Alert box like stackoverflow dynamic data