簡體   English   中英

MVC +在條件上返回不同的PartialView

[英]MVC + returning different PartialView on condition

不確定這是否是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
}

看一下動作過濾器。 這些允許您通過控制器方法上的屬性安裝類,該屬性會在方法運行之前攔截調用。 您可以在此處進行這種基本檢查,並從此處返回標准錯誤處理程序結果。

ASP.NET MVC具有內置的HandleErrorFilterAttribute ,如果在操作或其他篩選器中發生某些錯誤,則可以幫助您返回錯誤視圖。 內置的HandleError過濾器返回的視圖不是部分視圖,因此您可能必須創建一個自定義視圖才能返回部分視圖。 想法是,如果fbUID為null,並且自定義句柄錯誤過濾器處理該異常,則必須從操作中引發一些自定義異常。

我建議僅當您在許多地方都看到此功能時,才采用自定義句柄錯誤過濾器方法,否則,對於一件簡單的事情,它會更加有用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM