我在我的家庭控制器中创建了一个Action,它接受一个文本:
public class HomeController : Controller
{
public string DisplayText(string text)
{
return text;
}
}
我可以使用以下url调用此Action,方法是将text参数作为查询字符串传递:
http://localhost:4574/Home/DisplayText?text=some text
但是,我希望能够使用以下样式调用它:
http://localhost:4574/Home/DisplayText/some text
因此,未指定参数名称(“text”);
怎么可能?
另一个更清楚解释的例子如下:
public string Add(string a, string b)
{
return (int.Parse(a) + int.Parse(b)).ToString();
}
我可以使用:
来调用它http://localhost:4574/Home/Add?a=2&b=3
但是如何以RESTFul方式调用它?例如(http://localhost:4574/Home/Add/2/3
)
答案 0 :(得分:3)
您可以定义路线:
routes.MapRoute(
"MyRoute",
"{controller}/{action}/{a}/{b}",
new { controller = "Home", action = "Add" },
// it's always a good idea to define route constraints
// in this case we are constraining the a and b parameters to numbers only
new { a = @"\d+", b = @"\d+" }
);
然后:
public ActionResult Add(int a, int b)
{
return Content(string.Format("The result of {0}+{1}={2}", a, b, a + b));
}