Utilizzando C# Web Api 2, ho il codice che genera un InvalidOperationException
. Quando si restituisce un codice di stato di 302, in che modo fornire una posizione per il reindirizzamento utilizzando l'annotazione HandleException
?Come si specifica la posizione quando si utilizza l'annotazione handleexeption per un codice di stato 302
[HandleException(typeof(InvalidOperationException), HttpStatusCode.Found, ResponseContent = "Custom message 12")]
public IHttpActionResult GetHandleException(int num)
{
switch (num)
{
case 12: throw new InvalidOperationException("DONT SHOW invalid operation exception");
default: throw new Exception("base exception");
}
}
Edit: Mi dispiace, ho fatto questa domanda in un po 'di fretta. La classe precedente utilizza una classe HandleExceptionAttribute che eredita da ExceptionFilterAttribute. Non me ne sono reso conto al momento che stavo cercando di eseguire il debug del loro test unitario. Il problema non si presenta in un test unitario, ma viene visualizzato utilizzando un .webtest di Visual Studio che richiede l'url di reindirizzamento. La classe che eredita da ExceptionFilterAttribute non ha fornito un parametro che consente di fornire l'URL reindirizzato. Ci scusiamo per una domanda incompleta e grazie per aver dedicato del tempo a rispondere.
/// <summary>
/// This attribute will handle exceptions thrown by an action method in a consistent way
/// by mapping an exception type to the desired HTTP status code in the response.
/// It may be applied multiple times to the same method.
/// </summary>
[AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = true)]
public sealed class HandleExceptionAttribute : ExceptionFilterAttribute
{
L'attributo ** HandleException ** è il tuo? Puoi fornire il codice sorgente o il collegamento al codice sorgente per vedere cosa puoi fare per migliorarne l'utilizzo? – D4rkTiger
Utilizza il filtro delle eccezioni e imposta la tua logica di reindirizzamento lì. Puoi anche impostare il reindirizzamento basato sulle condizioni nei filtri. –
Dammi più informazioni per aiutarti con la risposta appropriata. –