Я думаю, что нет никакой перегрузки для добавления параметров, отличных от списка параметров действия, при создании actionlink через строго типизированные ссылки действий. Я хочу добавить дополнительные параметры, которые будут доступны в querystring.
Например, с действием MyAction (int id) в контроллере MyController. Html.ActionLink (mc => mc.MyAction (5), «My Action») будет производить ссылку что-то вроде MyController/MyAction/5, но то, что я хочу, это добавить такую последовательность запросов. MyController/MyAction/5? QS = Значение. Есть ли способ, используя строго типизированные actionlinks, для достижения этого.Параметры QueryString в Mvc сильно типизированных actionlinks
3
A
ответ
1
Создайте для этого специальный помощник. Попробуйте что-то вроде этого:
public static string MyActionLinkWithQuery<TController>(this HtmlHelper helper, Expression<Action<TController>> action, string linkText,
RouteValueDictionary query) where TController : Controller
{
RouteValueDictionary routingValues = ExpressionHelper.GetRouteValuesFromExpression(action);
foreach(KeyValuePair<string, object> kvp in query)
routingValues.Add(kvp.Key, kvp.Value);
return helper.RouteLink(linkText, routingValues, null);
}
4
<%=Html.ActionLink(LinkName, Action, Controller, new { param1 = value1, param2 = value2 }, new { })%>
0
Вам не нужно создавать методы расширения, просто изменить конфигурацию маршрутизации:
routes.MapRoute(null,
"MyController/MyAction/{id}",
new { controller = "MyController", action = "MyAction", id="" } // Defaults
);
routes.MapRoute(
null
, // Name
"{controller}/{action}", // URL
new { controller = "MyController", action = "MyAction" } // Defaults
);
Смежные вопросы
- 1. MVC сильно типизированных данных
- 2. MVC Validating сильно типизированных
- 3. Сильно типизированных в ASP MVC
- 4. ASP.NET MVC Список население в сильно типизированных
- 5. Проблема с сильно типизированных
- 6. ASP.NET MVC 2 сильно типизированных HtmlHelper, индексы
- 7. MVC Newbie Вопрос о сильно типизированных представлениях
- 8. ASP.NET MVC и сильно типизированных PartialView
- 9. ASP MVC сильно типизированных HTML без бритвой
- 10. с использованием сильно типизированных частичный вид внутри другого сильно типизированных
- 11. Сильно типизированных List.GroupBy()
- 12. Сильно типизированных целые
- 13. Сильно типизированных Общие альтернативы Атрибут
- 14. сильно типизированных данных в ViewPage
- 15. Сильно типизированных ссылки в ASP.NET MVC бета 2.0
- 16. Почему сильно типизированных Html.ActionLink не в ASP.NET MVC 1
- 17. Динамические элементы управления в сильно типизированных (ASP.NET MVC)
- 18. Представляют JSON в сильно типизированных POCO класса
- 19. InvalidOperationException рендеринга ViewComponent в сильно-типизированных
- 20. Haskell сильно типизированных баз данных
- 21. C++ преобразование сильно типизированных перечислений
- 22. преобразования JSON данные сильно типизированных
- 23. StructureMap сильно типизированных аргументы конструктора
- 24. Как использовать сильно типизированных перечислений
- 25. Сильно типизированных многомерный массив/Коллекция
- 26. не сильно типизированных проблема действия
- 27. Сериализация сильно типизированных наборов данных
- 28. Сильно типизированных модель на RedirectToAction
- 29. Получить имя метода сильно типизированных
- 30. диез архитектура вопрос - не сильно не типизированных
Я делал это: @ Html.ActionLink (»», «Создать» & «? ParID = Automatic & parController =» & ViewData («Действие»). ToString, «Контроллер», Создать с помощью {.area = "MyArea"}, Создать с {.class = "imgNew"}), эта работа в MVC2, но когда я пытаюсь сделать то же самое на MVC3, я получаю эту ошибку: ** Потенциально опасное значение Request.Path было обнаружено у клиента **. Очевидно, что параметр был проблемой, поэтому я исправил: @ Html.ActionLink («", "Создать", "Контроллер", Создать с {.area = "MyArea", .parID = "Автоматически", .parController = ViewData (" «Действие»). ToString}, New With {.class = "imgNew"}). –