如何在Asp.Net MVC2中重载ActionResult

时间:2010-06-25 23:53:50

标签: asp.net-mvc-2 c#-4.0

我在MVC2

中遇到ActionResult方法重载问题

我有3种方法

public ActionResult MyMethod()
{  
   var data = ........
   //some unfiltered data from db
   return view(data);
}

public ActionResult MyMethod(string name)
{
   var data = .......
              Where xxx.StartsWith(name)
   //some filtered data by name
   return View(data);
}

public ActionResult MyMethod(int age)
{
   var data = .......
              Where xxx.Equals(age)
   //some filtered data by age
   return View(data);
}

如何在Asp.Net MVC2中重载方法? 感谢。

1 个答案:

答案 0 :(得分:2)

简短的回答,你不能仅仅通过变量来重载方法。

Discussion on Stack

如果必须具有相同的方法名称,则需要创建actionfilter属性并将其用作过载。

以上讨论的片段:

[RequireRequestValue("someInt")]
public ActionResult MyMethod(int someInt) { /* ... */ }

[RequireRequestValue("someString")]
public ActionResult MyMethod(string someString) { /* ... */ }