从Controller向Jquery发送一个值

时间:2014-06-12 23:26:10

标签: c# javascript jquery asp.net asp.net-mvc

我有一个MVC应用程序。

控制器:

public ActionResult DescargaCsv()
{  
    // do stuff
    if (status != 0){
        return value to javascript and display an alert there
    }
    else{
        //do other stuff, this is OK
    }
}

javascript:

function fnDownloadExcel() {
$.ajax({
    url: fnDownloadExcel?idArchivo=" + $("#idArchivo").val(),
    type: "POST",        
    success: function (data) {
    $("#idMessage").val(data[0]);
    if (data[0] == "R") {
        alert("Status: " + $("#idMensaje").val());
        }
    else {
        //do other stuff
         }                        
    }
}); 

如何向javascript发送我在控制器中获得的“状态”值?

2 个答案:

答案 0 :(得分:2)

C#

public ActionResult DescargaCsv() {  
    // do stuff
    if (status != 0){
        return new HttpStatusCodeResult(500, "This is a bad status message");
    } else{
        //do other stuff, this is OK
    }
}

jQuery

function fnDownloadExcel() {
    $.ajax({
       url: fnDownloadExcel?idArchivo=" + $("#idArchivo").val(),
       type: "POST",        
       success: function (data) {
           $("#idMessage").val(data[0]);
           if (data[0] == "R") {
             alert("Status: " + $("#idMensaje").val());
          } else {
            //do other stuff
          }                        
       },
       statusCode: {
           500: function(data) {
                  alert(data);
           }
       }
    }); 
}

这是未经测试的,但应该有效。

答案 1 :(得分:0)

控制器:

public JsonResult DescargaCsv() {  
    // do stuff
    if (status != 0)
    {
        return Json(status);//return values you want 
    } 
    else
    {
        //do other stuff, this is OK
    }
}

脚本:

function fnDownloadExcel() {
    $.ajax({
       url: fnDownloadExcel?idArchivo=" + $("#idArchivo").val(),
       type: "POST",        
       success: function (data) {
           alert(data);    
       },
       statusCode: {
           500: function(data) {
              alert(data);
           }
       }
    }); 
}