ASP.NET MVC Создан новый ActionLink с MvcHtmlString и URL запроса - PullRequest
0 голосов
/ 19 марта 2010

Этот фрагмент кода работал в MVC 1, но не работает, так как я обновил его до MVC 2:

    <%=Html.ActionLink(Resources.Localize.Routes_WidgetsCreate, "Create" + "?modal=true", "Widget", null,
                                      new
                                        {
                                            rel = "shadowbox;height=600;width=700",
                                            title = Resources.Localize.Routes_WidgetsCreate
                                        })%>

Я знаю, что это как-то связано с тем, как новый помощник ActionLink кодирует вещи, поэтому результат, который получается, выглядит примерно так:

"http://localhost:53704/Widget/Create%3fmodal%3dtrue"

Проблема заключается в том, что при щелчке модальное окно Shadowbox открывается и внутри, где должен быть обработан запрос View, если это исключение:

Ошибка сервера в приложении '/'.

На клиенте обнаружено потенциально опасное значение Request.Path (?).

Что я могу сделать, чтобы пройти через это? Вы рекомендуете другой способ отправки параметров в представление помимо QueryString (в этом случае мне нужен "модальный", потому что в представлении я выбираю стили CSS на основе того, делаем ли мы модальный или нет)?

1 Ответ

3 голосов
/ 19 марта 2010

Вы также не должны строить параметры строки запроса в MVC. Вместо этого добавьте их в качестве маркеров значения маршрута:

<%=Html.ActionLink(Resources.Localize.Routes_WidgetsCreate, "Create",                       "Widget", 
                                  new
                                  {
                                      modal = true
                                  },
                                  new
                                    {
                                        rel = "shadowbox;height=600;width=700",
                                        title = Resources.Localize.Routes_WidgetsCreate
                                    })%>

Все, что не соответствует идентификатору в самом маршруте, будет добавлено в качестве параметра строки запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...