what is the use of RouteValueDictonary routeValues in Html.BeginForm()

前端 未结 2 2018
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-19 11:27
@{
    ViewBag.Title = \"About Us\";
}

@using (Html.BeginForm(new RouteValueDictionary { {\"Action\",\"Index\"}}))
{
         


        
相关标签:
2条回答
  • 2020-12-19 11:57

    The route value dictionary simply allows flexibility in defining the location that the form will POST to. Not everyone stops at controller/action. For example, let's say that I wanted my form to post to /Area/Controller/FormProcessor/Action/Parameter1/Parameter2. I cannot do this by using the simple Html.BeginForm("Action", "Controller") method.

    0 讨论(0)
  • 2020-12-19 11:58

    This is also useful when implementing the ActionFilterAttribute for Redirection purpose. The basic usage of this class is to define the Action name, Controller Name and Area Name

    public class MyActionFilter : ActionFilterAttribute
    {
        public override void OnResultExecuting(ResultExecutingContext filtercontext)
        {
            filtercontext.Result = new RedirectToRouteResult
                (
                    new RouteValueDictionary
                        (
                            new
                            {
                                controller = "ControllerName",
                                action = "ActionName",
                                area = "AreaName"
                            }
                        )
                );
            base.OnResultExecuting(filtercontext);
        }
    }
    

    You can also send the Parameter list like below..

    filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary
                            {
                                {"action", "ActionName"},
                                {"controller", "ControllerName"},
                                {"area", "Area Name"},
                                {"Parameter Name","Parameter Value"}
                            });
    
    0 讨论(0)
提交回复
热议问题