2013-08-08 4 views
3
@{ 
    ViewBag.Title = "About Us"; 
} 

@using (Html.BeginForm(new RouteValueDictionary { {"Action","Index"}})) 
{ 
<input type="submit" value="submit"/> 
} 

Когда я сделатьчто использование RouteValueDictonary routeValues ​​в Html.BeginForm()

<form action="/Home/Index" method="post"><input type="submit" value="submit"/> 

Является ли это фактическое использование RouteValueDictonary. Если так, я могу это сделать с помощью HTML.BeginForm («О», «Главная»)

Может кто-нибудь объяснить фактическое использование RouteValueDictonary. Любая помощь будет оценена по достоинству.

ответ

11

Это также полезно при реализации ActionFilterAttribute для целей перенаправления. Основное использованием этого класса является определением Action имени, Controller Имени и Area Имени

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); 
    } 
} 

Вы также можете отправить список параметров как показано ниже ..

filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary 
         { 
          {"action", "ActionName"}, 
          {"controller", "ControllerName"}, 
          {"area", "Area Name"}, 
          {"Parameter Name","Parameter Value"} 
         }); 
+0

спасибо за ответ pkkg – rikky

4

Словарь значений маршрута просто позволяет гибко определять местоположение, в которое будет отправляться POST. Не каждый останавливается у контроллера/действия. Например, предположим, что я хотел, чтобы моя форма размещалась до /Area/Controller/FormProcessor/Action/Parameter1/Parameter2. Я не могу этого сделать, используя простой метод Html.BeginForm("Action", "Controller").

 Смежные вопросы

  • Нет связанных вопросов^_^