【问题标题】:post and get attribute in ASP.NET action method在 ASP.NET 操作方法中发布和获取属性
【发布时间】:2017-01-16 12:16:21
【问题描述】:

假设我有两个 create action 方法,一个用于 get 方法,一个用于 post 方法:

[HttpGet]
public ActionResult Create()
{  
   return View();
}

[HttpPost]
public ActionResult Create()
{  
   return View();
}

如果我只是给Get方法添加一个视图,那么Post动作方法没有视图,那么当我调用Create的post方法时,为什么我仍然得到属于get方法的视图?

【问题讨论】:

  • return View(); 返回与方法同名的视图,在您的情况下为 Create.cshtml
  • 您不能创建两个具有相同签名的方法。你会得到构建错误。
  • @StephenMuecke 但是如果我想为 post 方法添加一个视图,我实际上不能这样做,因为它已经具有与 get 方法相同的名称视图。那我该怎么办?
  • 你总是可以使用return View("NameOfAnotherView");(但不清楚你为什么要这样做——如果你想返回不同的视图,你应该重定向到另一种方法)
  • 我认为你应该在[HttpPost] Create()方法中传递参数。

标签: asp.net .net asp.net-mvc-4


【解决方案1】:

当你从一个方法创建一个视图时,这个视图属于所有同名且共享同一个类的方法。 如果你想调用另一个视图(在这种情况下,从 post 方法),只需使用

return View("nameOfTheView");

【讨论】:

    【解决方案2】:

    视图的路径是根据控制器的名称和控制器动作的名称推断出来的。

    如果您愿意,您可以明确说明视图。以下代码行返回一个名为 Foo 的视图:

    return  View("Foo");
    

    所以,您应该指定要返回的视图的名称

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 2023-01-31
      • 1970-01-01
      相关资源
      最近更新 更多