下面是本我自己工作的解決方案:
//路由配置:
//GET | /photos | index | display a list of all photos
config.Routes.MapHttpRoute(
name: "DefaultIndex",
routeTemplate: "api/{controller}",
defaults: new {action = "Index"},
constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) }
);
//POST | /photos/ | create | create a new photo
config.Routes.MapHttpRoute(
name: "DefaultCreate",
routeTemplate: "api/{controller}",
defaults: new { action = "Create" },
constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) }
);
//GET | /photos/new | new | return an HTML form for creating a new photo |
config.Routes.MapHttpRoute(
name: "DefaultNew",
routeTemplate: "api/{controller}/new",
defaults: new { action = "New" },
constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) }
);
//GET | /photos/:id | show | display a specific photo
config.Routes.MapHttpRoute(
name: "DefaultShow",
routeTemplate: "api/{controller}/{id}",
defaults: new { action = "Show" },
constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) }
);
//PUT | /photos/:id | update | update a specific photo
config.Routes.MapHttpRoute(
name: "DefaultUpdate",
routeTemplate: "api/{controller}/{id}",
defaults: new { action = "Update" },
constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Put) }
);
//DELETE | /photos/:id | destroy | delete a specific photo
config.Routes.MapHttpRoute(
name: "DefaultDestroy",
routeTemplate: "api/{controller}/{id}",
defaults: new { action = "Destroy" },
constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Delete) }
);
config.Routes.MapHttpRoute(
name: "DefaultEdit",
routeTemplate: "api/{controller}/{id}/edit",
defaults: new { action = "Edit" },
constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) }
);
// ApiController操作
// GET api/photo
[ActionName("Index")]
public string Get()
{
return "Index Action called";
}
// GET api/photos/5
[ActionName("Show")]
public string Get(int id)
{
return "Show action called"
}
// GET api/photos/5/edit
[HttpGet]
public string Edit(int id)
{
return "Edit action called";
}
// POST api/photos
[ActionName("Create")]
public void Post([FromBody]string value)
{
}
// GET api/photos/new
[HttpGet]
public string New()
{
return "New called";
}
// PUT api/photos/5
[ActionName("Update")]
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/photos/5
[ActionName("Destroy")]
public void Delete(int id)
{
}
來源
2013-06-28 15:26:17
Jas
您是否試圖返回一個適合瀏覽器的HTML頁面,API風格的數據響應或其中的一部分?這聽起來像你想要返回HTML,在這種情況下,你不想使用WebAPI。你只是想使用MVC。 –
嗨,布賴恩,我回來了json,在單頁面應用程序中使用Knockout和SammyJS – Jas