2014-01-25 49 views
3

我正在使用backbone.js發送GET請求並傳遞模型作爲參數。在MVC 4和Backbone.js中傳遞查詢字符串內的對象

我有我的模型如下: -

class Vehicle 
{ 
    public int Id 
    public string Name 
} 
class Car 
{ 
    public string Type 
    public Vehicle Vehicle 
} 

現在,我有我的控制器: -

[HttpGet]  
    public ActionResult GetClasBDetails(Car carModel){ 
      // Something goes here 
    } 

當我這樣做: -

this.model.fetch({ 
    data: $.param({//I have tried removing $.param also 
     Vehicle: { 
      Id: '1',// Also tried '1' and 1(as numeric) 
      Name:'ford mustang' 
     }, 
     Type: "Ford" 
    }), 

    success: function (data) { 


    } 

}); 

當我運行上面的代碼Type屬性正在映射,我得到適當的值,但不是爲Vehicle。任何想法?

我不得不在HttpGet請求中發送一個對象,因爲有些複雜請忽略。

編輯: -

的URL看起來像

http://localhost/Home/GetClasBDetails?Vehicle%Id%5D=10&Vehicle%Name%5D=Bed+10&Type=1 
+0

如果您查看發送的獲取請求,它是什麼樣子的? –

+0

更新了我的問題 – Shubh

回答

2

當你的模型包含嵌套Vehicle對象的請求必須是在一定的格式模型綁定在你的控制器動作實例化。

你的請求的URL需要在以下格式:

http://localhost/Home/GetClasBDetails?Type=1&Vehicle.Id=1&Vehicle.Name=aName 

採取特定通知到嵌套Vehicle對象被表示爲屬性名用句點分隔的方式。

你需要確保骨幹請求匹配這一點,我沒有測試過這一點,但我猜測,這應該工作:

data: { 
     Type: "Ford", 
     'Vehicle.Id' : 1 
     'Vehicle.Name' : 'ford mustang' 
    } 
+0

它會給我'意想不到的標記。 '如果我在我的數據屬性中說'Vehicle.Name:'ford mustang''。 – Shubh

+0

謝謝你。它的工作原理。唯一的問題,'屬性需要在引號中,我錯過了。 – Shubh

2

我會hutchonoid同意,它工作需要嘛做的是,結束了在單引號的屬性,否則它會拋出Unexpected token .錯誤: -

data: { 
     Type: "Ford", 
     'Vehicle.Id' : 1 
     'Vehicle.Name' : 'ford mustang' 
    } 

請糾正我,如果這是那種錯誤的標準或任何..謝謝@hutchonoid

+0

不錯的一點,感謝upvote/accept。 :) – hutchonoid

相關問題