asp.net MVC Controller 小记
1.调用。有这样一个action:
2.调用:
此时已成功调用,但URL为:http://localhost:4803/test/method1?id1=1&id2=2&id3=3,显得非常臃肿,现在要修改多参数的显示格式
3.为它专门添加一个路由即可(再次强调,新添加的路由要写在默认路由前面,好让它先被找到):
再次调用,URL为:
http://localhost:4803/test/method1/1-2-3
4.若想跨controller调用,可在new{}里面指定一下controller即可:
5.提供默认参数。必要情况下,可以提供默认参数,这样的话,带或不带默认参数的情况都可以匹配
但是这样的话URL就不美观了:
http://localhost:4803/test/method1/1-2-3?id4=5
6.可以显式定义action的名称:
路由也要改一下action名称:
view也要改一下:
7.需要异步的情况需要用到异步的controller,继承AsyncController类
8.使用[Authorize]来限定必须登录才能调用
9.使用AsyncTimeout(5000)]来定义超时的最大秒
10.关于ajax与controller通信参见:http://blog.csdn.net/csharp25/article/details/7966663
public void method1(string id1, string id2, string id3)
{
Response.Write("id1: " + id1 + " id2 : " + id2 + " id3 :" + id3);
}
2.调用:
<%: Html.ActionLink("invoke mothod1 ","method1",new{id1="1",id2="2",id3="3"}) %>
此时已成功调用,但URL为:http://localhost:4803/test/method1?id1=1&id2=2&id3=3,显得非常臃肿,现在要修改多参数的显示格式
3.为它专门添加一个路由即可(再次强调,新添加的路由要写在默认路由前面,好让它先被找到):
routes.MapRoute("method1Rt",
"test/method1/{id1}-{id2}-{id3}",
new { controller="Test",action="method1"});
再次调用,URL为:
http://localhost:4803/test/method1/1-2-3
4.若想跨controller调用,可在new{}里面指定一下controller即可:
<%: Html.ActionLink("invoke mothod1 ","method1",new{controller="test",id1="1",id2="2",id3="3"}) %>
5.提供默认参数。必要情况下,可以提供默认参数,这样的话,带或不带默认参数的情况都可以匹配
<%: Html.ActionLink("invoke mothod1 ","method1",new{controller="test",id1="1",id2="2",id3="3",id4="5"}) %>
和 <%: Html.ActionLink("invoke mothod1 ","method1",new{id1="1",id2="2",id3="3"}) %>
都会调用
public void method1(string id1, string id2, string id3,string id4="4")
{
Response.Write("id1: " + id1 + " id2 : " + id2 + " id3 :" + id3 + "id4: " + id4);
}
但是这样的话URL就不美观了:
http://localhost:4803/test/method1/1-2-3?id4=5
6.可以显式定义action的名称:
[ActionName("mth1")]
public void method1(string id1, string id2, string id3,string id4="4")
{
Response.Write("id1: " + id1 + " id2 : " + id2 + " id3 :" + id3 + "id4: " + id4);
}
路由也要改一下action名称:
routes.MapRoute("method1Rt",
"test/mth1/{id1}-{id2}-{id3}",
new { controller = "Test", action = "mth1" });
view也要改一下:
<%: Html.ActionLink("invoke mothod1 ","mth1",new{id1="1",id2="2",id3="3"}) %>
7.需要异步的情况需要用到异步的controller,继承AsyncController类
8.使用[Authorize]来限定必须登录才能调用
9.使用AsyncTimeout(5000)]来定义超时的最大秒
10.关于ajax与controller通信参见:http://blog.csdn.net/csharp25/article/details/7966663