Альтернатива для ViewData и QueryString - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть страница (a.aspx), на которую я перехожу с двух разных страниц (т.е. на этих двух страницах есть ссылка, по которой он переходит на a.aspx)

чтобы отличить, с какой страницы я перешел на a.aspx, я использовал следующий код.

передал строки запросов (B1, B2) на целевую страницу, как показано ниже

Html.ActionLink("test" "Testing", new { Controller = "Stats",prev="B1"},new { @class = "link",target="_self" })
Html.ActionLink("test" "Testing", new { Controller = "Stats",prev="B2"},new { @class = "link",target="_self" })

и в действии контроллера целевой страницы я использовал следующий код

ViewData["prev"] = Request.QueryString["prev"].ToString();

и я использую эти ViewData на целевой странице, т.е. a.aspx. Это работает нормально .. Я не хочу использовать Query.string и ViewData для вышеуказанного требования. Пожалуйста, предложите любой другой альтернативный подход для того же.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2012

Почему бы не перейти к двум отдельным действиям, которые возвращают одно и то же представление? Затем верните модель в представление, которое будет указывать на страницу «от». Вы будете знать, с какой страницы вы пришли, благодаря чему действие попадает в цель. Он чище, гораздо менее сложен и легче поддерживать, чем пытаться обойти подобные вещи в строке запроса, viewdata, viewbag и т. Д. При этом, если вам приходится делать много такого рода вещей, создавая отдельные действия каждый раз не реально

0 голосов
/ 03 апреля 2012

Вы можете использовать это,

Получить имя контроллера

 @ViewContext.Controller.ValueProvider.GetValue("controller").RawValue

Получить имя действия

@ViewContext.Controller.ValueProvider.GetValue("action").RawValue

Я обнаружил, что здесь .

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