1

私はC#の経験は多少ありますが、MVC4はまったく初めてで、単純なものに苦労しています。コントローラーから始めて、既存のアプリケーションでいくつかの編集を行おうとしています。基本的なテストを行って、アクションが正しく実行されていることを確認したいと考えています。

アクションが ViewResult を正しく返すことを確認するためだけに、コントローラのアクションで、操作できる基本的なコンテンツ (単に「Hello World」など) を含む ViewResult を返すようにしたいと考えています。より複雑な機能を追加し始めます。

現在、コントローラーのアクションは次のようになっています。

    public ActionResult Test()
    {
        var v = new ViewResult();
        v.ViewData["Message"] = "HELLO THERE";
        return v;
    }

明らかに、私が基本に苦労していることがわかります。いくつかのチュートリアルを見てきましたが、Visual Studio で新しいビュープロジェクトを作成するコンテキストでビューを作成する方法に焦点を当てているようですが、これは私が望んでいるものではありません。ビュー データを含む実際のファイルを作成するのではなく、アクションを適切に呼び出しているかどうかをテストできるように、いくつかの基本的なコンテンツをアクションのビュー オブジェクトにドロップしたいだけです。

どんな洞察も常に高く評価されます。

4

4 に答える 4

1

ビューなしで何かをしたい場合は、ActionResultビューをロードする を返すことはできません(あなたの場合、指定していない「Test」という名前のビュー)。

void コントローラーを作成することもできます (少なくとも、私はそれをやったことがないと思います)。しかし、メッセージを出力するだけの単純なビューを作成してみませんか?

public ActionResult Test()
{
    ViewData["Message"] = "HELLO THERE";
    return View("DebugView");
}

そして、DebugView.cshtml は次のとおりです。

@ViewData["Message"]

上記をテストして動作します。他の誰かが指摘したように、他のものを返すことができます。

于 2013-09-05T19:47:57.780 に答える
1

慣例により、各コントローラーアクションから返されるビューファイルを持つことを意図しています。デバッグ ビューを試してみたい場合は、一時的なビュー ファイルを作成し、その文字列をビューに渡します。Json などの他のデータ型を返すこともできますが、データ (ビューを除く) を返すだけです。これを試してください。

public ActionResult SomeActionMethod() {
    return Content("hello world!");
}

この件に関しては、コントローラーの周りに単体テストを書いた方が良いかもしれません。理想的には、データはビューによって変更されるべきではなく、基本的なビュー ロジックのみを持ち、ビュー モデルを表示する必要があります。単体テストを使用すると、デバッグ ビューを作成したり、ビューに関連するものに触れたりするのではなく、コントローラーのアクションによって何が返されているかを確認できます。

于 2013-09-05T19:48:25.050 に答える
1

簡単に実行できます...アクションと同じ名前の空のビューを作成するだけで完了です

public ActionResult Test()
    {

        ViewData["Message"] = "HELLO THERE";
        return view();
    }

何もない Test ビューを作成する

于 2013-09-05T19:47:38.510 に答える
0

アクションの結果だけでなく、mvcで何でも返すことができます

    public string Test()
    {
        return "Hello World!!!";
    }
于 2013-09-05T19:49:29.780 に答える