如果我沒有弄錯,最好的方法是添加兩個不同的控制器方法,並將它們映射到兩個不同的Url。
public ActionResult Filter1(string criteria1);
public ActionResult Filter2(string criteria1, criteria2);
那麼有兩種途徑定義:
這將這個URL List/Filter/xxCriteria/
映射到第一控制器
routes.MapRoute(
"Filter", // Route name
"{controller}/Filter/{criteria1}", // URL with parameters
new { controller = "List", action = "Filter1", criteria="" } // Parameter defaults
);
這將這個URL List/Filter/xxCriteriaName/xxxCriteriaRank
映射到第二控制器。如果沒有這條路你仍然可以映射一個URL到第二個方法,但它看起來像:List/Filter/?criteria1=xx&criteria2=xx
routes.MapRoute(
"Filter2", // Route name
"{controller}/Filter/{criteria1}/{criteria2}", // URL with parameters
new { controller = "List", action = "Filter2", criteria1 = "", criteria2 = "" } // Parameter defaults
);
希望它幫助。
不確定但在您的ActionResult方法中,您可以以編程方式調用其他ActionResult方法。我做了很多。 – CarneyCode 2011-03-06 08:56:28