2015-11-06 83 views
-1

我已經創建了一個按鈕,並添加了一個jQuery點擊事件,如下所示。如何檢索ASP.net MVC控制器中的JSON數據?

$("#saveMe").click(function() 
{ 

     var car = { name: 'intro to asp.net', price:5200}; 
     $.ajax({ 
      type: "POST", 
      url: "/Book/saveData", 
      data: car, 
      datatype: "html", 
      success: function (data) { 
       alert("successfully saved in DB"); 
      } 
     }); 

}); 

我需要訪問控制器操作中的這些JSON數據。我需要分別獲取名稱和價格的價值。此外,我還需要爲書籍模型中的名稱屬性和書籍模式中的價格屬性的價格值分配名稱值。 我的控制器操作如下所示。

public ActionResult saveData() 
     {  
      String name = //assign json data.name. 
      double price= //assign json.data.price 
      book.name=name // **Is this a correct way to assign values to the mode?** 

     } 

我是一個asp.net的初學者,我真的不能解決這個問題。請幫助我。謝謝。

回答

1

的參數有2個屬性(string namedecimal price),因此該模型被綁定的值添加到您的方法,以便其

public ActionResult saveData(string name, decimal price) 
{ 
    ... 
} 

或創建一個模型(比如class Book

public ActionResult saveData(Book model) 
+0

你可以說,如何檢索pas sed json數據? – Tharu

+0

你是什麼意思?在第一個例子中,參數'name'的值爲''intro to asp.net'',參數'price'的值爲'5200'。在第二個例子中,'model.name'和'model.price'將具有值。你還有什麼期望? –

+0

你能指導我將值傳遞給模式嗎?我爲BOOK表創建了一個ado.net實體模型。我需要將檢索的名稱和價格傳遞給BOOK模型。我可以這樣做嗎? – Tharu

0

它應該是:

[HttpPost] 
public JsonResult saveData(string name, double price) { ... 
+0

你可以說,如何檢索傳入的json數據? – Tharu

+0

您是否看到控制器方法的參數與您的json對象具有相同的名稱?他們將檢索從您的ajax請求傳遞的數據。 您也可以直接使用模型作爲參數,如@Stephen Muecke建議。請注意,您必須將模型的屬性命名爲您從客戶端發送的JSON對象。 –