ASP MVC3将json返回给ajaxform

时间:2013-07-25 19:37:35

标签: javascript ajax asp.net-mvc-3

我需要对返回的json执行操作到ajaxform。我不擅长javascript应该这样做...我可以从控制器中的方法返回Json,但我可以正确地做事情取决于这个json结果吗?

我需要返回状态值,其中status可以是1,2或2.在视图中我需要实现JS,它将向div添加文本,具体取决于此脚本从方法获取的json。一切都应该使用ajax。有谁能推荐我很好的教程?或者只是为我编写我将要分析的代码。

2 个答案:

答案 0 :(得分:1)

您可以为jQuery编写一个简单的扩展方法:

jQuery.extend({
    postJSON: function (url, data, callback) {
        return jQuery.post(url, data, callback, "json");
    }
});

然后在你的javascript块中执行此操作:

$.postJSON('/controller/action',
{
    Param1: 1, 
    Param2: 2
}, 
function(data){
   alert(data.result);
});

在控制器

[HttpPost]
public ActionResult Action(int Param1, int Param2)
{
    return Json(new {
       result : "It Worked"
    }); 
}

答案 1 :(得分:0)

这是一个根据ur actionmethod的响应更改分区内文本的示例...

//a class with properties.  

  Class Priveleges{
Public string StatusMessage{get;set;}
Public int StatusCode{get;set;}
 }


 //code inside controller
  [HttpGet]
  Public JsonResult Index{
  Priveleges obj=DecidePriveleges():
  Return Json(obj,allowget.true);
  }

 Private Priveleges DecidePriveleges(){
  Prilveleges obj;
   //prepare object based on server response
  If(response=="high"){
  obj=new Priveleges(){
  StatusMessage="high priveleges",
  StatusCode=1}
  }else if(response=="medium){
    obj=new Priveleges(){
   StatusMessage="medium priveleges",
   StatusCode=2}
 }else if(response=="low"){
   Obj=new Priveleges(){
   StatusMessage="low priveleges"‚
   StatusCode=3}
  }
  Return obj;



 //code inside ur view
//suppose you want to change the text inside 
//ur div when the page loads..
<div id="statusDiv"></div>

 //here is ur javascript.   
 $(document).ready(function(){
  $.getJSON('/controller/Index',function(data){
  $('#statusDiv').text(
   'You have '+data.StatusMessage);
  });
  });
  //here data,the parameter of getJson method.    
 //holds the data coming from our action
 //method...

对不起代码格式..从我的手机上发布代码......

希望这个小考试可能会有所帮助..