有多个http get方法可以解决两个具有相同名称的操作?

时间:2013-03-08 18:37:53

标签: asp.net-mvc asp.net-mvc-4 http-get asp.net-mvc-controller

我正在使用asp.net MVC 4.有没有办法在具有相同名称但不同参数的动作上使用两个http get方法?或者只是让页面成为两者的索引页面的方式,这样页面的名称是一致的?此外,int不能为null。

示例:

用于查询字符串和搜索

   [HttpGet]
    public ActionResult Index(int num, string aString)
   {
   } 

仅用于操作链接点击(默认搜索)

 [HttpGet]
  public ActionResult Index()
 {
 } 

3 个答案:

答案 0 :(得分:3)

没有解决方法。你可以做的是:

[HttpGet]
public ActionResult Index(int num, string aString)
{
      //if num == null, throw exception or do something
      // if string == null, do something, if not, do something else
} 

答案 1 :(得分:0)

 - (Html . BeginForm ( "ViewName", "ControllerName", FormMethod.Get ) {
   Html . Hidden ( "actionname1", "true" ) form elements set 1 submit
   button 1 }

   (Html . BeginForm ( "ViewName", "ControllerName", FormMethod.Get ) {
   Html . Hidden("actionname2", "true") form elements set 2 submit
   button 2 }

   In Controller, check for "true "values for actionname1, actionname2
   and decide on control flow for each. Assumption: Same View and Same
   Controller WITH Two distinct FormMethod.Gets

   ..Paurav

答案 2 :(得分:0)

我实际上最终做的是在一个获取http请求操作中传入一个具有可空值的对象。正如评论中上面提到的@Display名称,Microsoft已将此功能内置到.net框架中。