你可以但你不應該使用JsonResult。 Web Api是一個天才的概念。 Web APi使REST更簡單。對於每個實體,您都可以創建新的ApiController並通過它來管理CRUD操作。這裏有幾點。
你已經提到過,我們不能使用超過Get,Post,Put,Delete的操作,這是不正確的。我使用了以下操作。
public bool post()
{
return true;
}
[HttpPost]
public bool validate(int id)
{
return input == 0;
}
所以在上面的代碼中,如果您確實張貼了與/ cntrName操作,POST方法將被調用,如果您發佈/ cntrname /驗證/ 4,驗證將被調用。這意味着你可以爲多重請求使用函數重載。
2. 我使用angularJS很多,Web API幫助很大。您必須爲每個Angular控制器聲明1個url,並且每個請求看起來都相同,但會進行適當的調用。 它增加了reusability.Example
[HttpPost]
public JsonResult post()
{
return Json("output",JsonRequestBehavior.AllowGet);
}
public string post()
{
return "output";
}
現在如果你想在不同的控制器使用上述方法,用MVC你必須做以下
(string) post().Data //get returned data from JsonResult and convert to string.
Web Api is just returning string
- 的Web API是一個合乎邏輯的抽象做阿賈克斯請求。當然你可以使用MVC(如果你願意,你也可以使用WebForms)。但web API是寫CRUD-REST應用程序的更好方式。
我們設法將FluentValidation集成到WebApi中。我們所要做的只是實現一個自定義的ModelValidatorProvider。請參閱以瞭解更多詳細信息:http:// stackoverflow。COM /問題/ 12975291 /如何對鉤fluentvalidator至A-MVC-4-Web的API。對於「動態」數據類型,我看不出爲什麼你想返回一個'動態'到客戶端..你的意思是匿名對象? –
如果你只關心JSON,那麼你可以從Web API控制器返回一個動態對象。 (XML序列化程序不支持動態。)對於路由,您可以使用基於操作的路由(將「{action}」放入路由模板中,或者使用基於屬性的路由 –