1

2 つの ASP.NET MVC アクションがあります。

public ActionResult GetAll()
{
      return GetOne(1);
}

public ActionResult GetOne(Int32 id)
{
      return View(id);
}

ご覧のとおり、GetAll はアクション GetOne を呼び出しています。ただし、GetAll() が呼び出されると (GetOne(id) を呼び出し、GetOne ビューを返す必要があります)、MVC は GetAll ビューがないというエラーをスローします。は?

GetAll に GetOne を呼び出して GetOne のビューを使用させるにはどうすればよいでしょうか (これは最初から論理的なことだと思いました)。

4

2 に答える 2

6
public ActionResult GetOne(Int32 id)
{
      return View(id, "GetOne");
}

ビュー名を明示的に指定すると、ルート値コレクションのアクション キー (この場合は "GetAll" に相当) を使用するデフォルトが上書きされます。

于 2009-09-16T20:37:11.937 に答える
1

ASP.NET MVC は、多くの MVC フレームワークと同様に、規則に基づいて多くの仮定を行います。彼らの慣例に従わない場合は、もう少しやるべきことがあります。この場合、コントローラーの名前に対応するフォルダー内の、アクションと同じ名前のビューであるという規則があります。

コントローラーが UsersController で、アクションが GetAll の場合、ビュー Views/Users/GetAll が見つかることが期待されます。

別のアクションに対応するビューを返したい場合は、(デフォルトを使用する代わりに) それを指定する必要があります。

return View(id, "GetOne")
于 2009-09-16T20:38:30.417 に答える