我是否必须列出Global.asax.cs
文件中的所有控制器功能?
我为我的锻炼创建一个api并创建了控制器WorkoutController。它有AddWorkout操作,它带有一些参数,例如用户名,密码,持续时间和类型。首先是两个字符串,最后两个是整数。
现在,我需要为它创建路线吗?并且每个动作都有不同的动作签名?为什么它不属于默认路线?如果我不提供正确的变量,调用它会破坏,但我知道我在做什么:D
routes.MapRoute(
"AddWorkout", // Route name
"Workout/AddWorkout/", // URL with parameters
new { controller = "Workout", action = "AddWorkout" } // Parameter defaults
);
??? :D ???
答案 0 :(得分:1)
您可以轻松创建 REST Api:
routes.MapRoute(
"Workout", // Route name
"{controller}/{action}", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
并以锻炼:
为例public class WorkoutController : Controller
{
public ActionResult Index()
{
return RedirectToAction("Index", "Help");
}
[HttpPost]
public ActionResult Workout(FormCollection form)
{
// HTTP POST: ADD Workout
// process form and return JSON
return Json(myObject);
}
[HttpDelete]
public ActionResult Workout(string id)
{
// HTTP DELETE: REMOVE Workout
// process form and return JSON
return Json(myObject);
}
[HttpGet]
public ActionResult Workout(string id)
{
// HTTP GET: GET Workout
// process form and return JSON
return Json(myObject);
}
}
但我建议您使用WCF:)
从客户端:
$.ajax({
type: "POST",
url: "/Workout/Workout",
data: {
'type': '123456',
'height': '171'
}
success: function(msg){
alert( "Data Saved: " + msg );
}
});
$.ajax({
type: "DELETE",
url: "/Workout/Workout",
data: { 'id': '123456' }
success: function(msg){
alert( "Data Saved: " + msg );
}
});
$.get("/Workout/Workout", { 'id': '123456' }, function(msg){
alert( "Data Saved: " + msg );
});
请记住创建一个登录方法,您将发送所有操作都需要的token
,因此您知道操纵数据的用户是real
。< / p>
答案 1 :(得分:0)
阅读this。
Route类的“Url”属性定义了Url匹配规则 应该用来评估路由规则是否适用于 特殊的传入请求。
答案 2 :(得分:0)
不,你根本不需要这样做。默认路由查看定义了哪些方法,并且只要您的参数与控制器上的某些方法对齐,就会找出要调用的内容。