2011-03-22 27 views
0

問題是我無法接收控制器中的任何值。有什麼可能是錯的?代碼在這裏。asp.net mvc 3 json值沒有收到控制器

$('#save').click(function() { 

     var UserLoginViewModel = { UserName: $('vcr_UserName').val(), 
      Password: $('vcr_Password').val() 
     }; 
     $.ajax({ 
      url: "/User/Login", 
      data: JSON.stringify(UserLoginViewModel), 
      contenttype: "application/json; charset=utf-8", 
      success: function (mydata) { 
       $("#message").html("Login"); 
      }, 
      error: function() { 
       $("#message").html("error"); 
      }, 
      type: "POST", 
      datatype: "json" 
     }); 
     return false; 
    }); 
}); 

    [HttpPost] 
    public ActionResult Login(UserLoginViewModel UserLoginViewModel) 
    { 

    } 

回答

1

您將需要一個操作過濾器或類似的工具來攔截郵件正文中的json。

這裏有一個啓動

Provider Factory

但這裏要說的是分類這對我的文章On Haacked

這是很好的,如果你知道你deserialising到了前面的類型,但如果你需要多態性你最終會在動作過濾器中使用這些想法。

+0

MVC 3包含內置支持JSON模型綁定 – 2011-03-22 13:29:14

3

當您使用MVC3時,您應該能夠利用內置的JSON模型綁定。

你的代碼示例有幾個錯別字:contentTypedataType都是小寫......(他們應該有一個大寫的「T」)

jQuery ajax docs

你張貼了正確的contentType /的dataType後, MVC應該自動將您的對象綁定到發佈的JSON。

+0

謝謝!我也有與拼寫錯誤選項同樣的問題 – Neil 2011-05-28 14:47:57

相關問題