1

I have this method who call 2 others methods but i've an error when a execute that code.

public ActionResult CreateOrder(string action, string type)
    {
        /*Some Code*/
        if(MyObject.isOk){
            return RedirectToAction("EditOrder", new { code = ErrorCode, libelle = Description });

        }else{
            return RedirectToAction("EditOrder", new { nordre = NoOrdre });
        }
    }

public ActionResult EditOrder(string nordre)
    {

    }

[ActionName("EditOrder")]
public ActionResult EditOrderError(string code, string libelle)
{

    }

But i get an 404 because the script try to find the "EditOrderError" view.

1
  • 1
    How do you call this method from View? Commented Jun 18, 2013 at 8:35

2 Answers 2

2

ASP.NET MVC doesn't allow you to overload controller actions unless they handle different HTTP verbs.

Assuming you're using C# 4, one possible workaround, albeit not a pretty one, is to use optional parameters on a single controller action:

public ActionResult EditOrder(string nordre = null, string code = null, string libelle = null)
{
    if (nordre != null)
    {
        // ...
    }
    else if (code != null && libelle != null)
    {
        // ...
    }
    else
    {
        return new EmptyResult();
    }
}
Sign up to request clarification or add additional context in comments.

Comments

1

You cannot overload controller actions using the same HTTP Method/Verb (GET/POST/ etc)

I would only use ActionNameAttribute if I need the controller action to have characters that .NET doesn't allow in an identifier. Like using dashes (/controller/create-user). Like this one..

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.