0

これが MVC での最善のアプローチかどうかはわかりませんが、条件付きでビューを返すにはどうすればよいですか。たとえば、「fbUID」が見つからない場合にエラー メッセージを表示する別のビューを返したい場合は、親切に支援してください。ありがとう。

public PartialViewResult GetCredentials(string facebookUID, string facebookAccessTok)
{
    string fbUID = facebookUID;

    if (fbUID != null)
    {
        // Request fb profile pic
        var rawImg = new Bitmap(ImageHelper.requestBitmapImage(fbUID));
        var processblurredImg = new Bitmap(rawImg);

        var gb = new GaussianBlur();

        for (int i = 0; i < 8; i++)
        {
            gb.ApplyInPlace(processblurredImg);
        }

        // Download it to local drive / server
        string uploadPath = Server.MapPath("~/upload");
        string fullPath = uploadPath + "\\ProfilePic.png";

        if (!Directory.Exists(uploadPath))
        {
            Directory.CreateDirectory(uploadPath);
        }
        if (uploadPath != null)
        {
            ImageHelper.savePng(fullPath, processblurredImg, 500L);
        }

        return PartialView("BlurredPhoto");
    }
    return PartialView("TestPartialView"); //if fbUID is null
}
4

2 に答える 2

0

アクション フィルターを参照してください。これらにより、メソッドが実行される前に呼び出しをインターセプトするコントローラーメソッドの属性を介してクラスをインストールできます。ここでこの種の基本的なチェックを行い、ここから標準エラー ハンドラの結果を返すことができます。

于 2012-08-23T08:52:44.333 に答える
0

ASP.NET MVC には、HandleErrorFilterAttributeアクションまたは他のフィルターでエラーが発生した場合にエラー ビューを返すのに役立つ組み込み機能があります。組み込みHandleErrorフィルターは部分ビューではなくビューを返すため、部分ビューを返すカスタム フィルターを作成する必要がある場合があります。アイデアは、が null の場合にアクションからカスタム例外をスローする必要がfbUIDあり、その例外を処理する場合、カスタム ハンドル エラー フィルターが部分ビューを返すということです。

カスタム ハンドル エラー フィルター アプローチを使用することをお勧めしますが、この機能が他の多くの場所で見られる場合にのみ、単純なことでより多くの作業を行うことができます。

于 2012-08-23T10:03:44.923 に答える