2010-05-17 31 views

回答

-1

MVC很可能這樣做,但我從您提供的代碼示例的理解是,你想要一個基於JSON API。

微軟爲這種情況創建了WebAPI,它既是強類型的,又在其底層設計中遵循MVC模式,但它也可以很好地工作,並且可以在同一個Web應用程序中使用。

但是:

如果你願意,你可以使用一個簡單的JSON串行器封裝的MVC控制器的行動提供序列化對象,並簡單地返回結果字符串,ActionResult的支持此方案過了,上崗使用內置元數據基礎架構,以驗證來自帖子的類型特定數據,從而爲您提供所需的類型安全。

將MVC控制器視爲休息端點也是可能的,它只是以正確的方式構建控制器來支持典型的REST調用。

但是,我強烈建議使用WebAPI,因爲它更適合API場景。

+0

Wardy可能是你錯過了這個問題的想法?目前的ASP.NET MVC 2具有基於魔術字符串方式的異步API。我想知道是否有人試圖創建強類型的替代品 – 2010-05-20 17:39:53

+0

你還想要這個答案嗎? – War 2016-02-10 21:43:18

+0

無論如何更新了我的答案...應該標記爲此答案 – War 2016-02-10 21:52:20

0

我相信我們最近做了這樣的事情,如果我正確地理解了你。我們使用ASP.NET MVC 2期貨庫中的JsonValueProviderFactory來實現強類型的操作(關於haaked.com的更多信息)。

對於異步操作,我們有一些與此類似:

[HandleError] 
public class HomeController : AsyncController 
{ 
    [HttpPost] 
    public void IndexAsync(Person person) 
    { 
     DoSomething(); 
    } 

    public ActionResult IndexCompleted() 
    { 
     return View(); 
    } 
} 

public class Person 
{ 
    public string Forename { get; set; } 
    public string Surname { get; set; } 
} 

,只是做一個POST與行動:

{"Forename": "Cheesy", "Surname": "Goat"} 

有一個偉大的Firefox插件,以幫助測試我稱之爲'REST客戶端',我也會推薦。

希望這會有所幫助。