Ограничение доступа пользователя к новому представлению об изменении значения идентификатора URL. - PullRequest
0 голосов
/ 07 июня 2011

Я новичок в MVC, и мы используем MVC 3.0 для нашего проекта.

У нас есть поток, подобный serach_view => results_view => details_view ..

у нас есть jQgrid в представлении результатов .. если пользователь щелкнет по любой из строк, они будут перенаправлены в подробное представление .. (это должно быть сделано с выбранной строкой jqgrid)

теперь URL будет похож на этот mysite / controller / detials / 1

Теперь я должен убедиться, что пользователь должен вернуться к представлению результатов, чтобы получить следующую запись в сетке.

но в MVC мы можем получить следующую запись с помощью mysite / controller / details / 2 (изменяя значение id)

как я могу контролировать это ... Мое требование - чтобы пользователь мог вернуться на страницу результатов, чтобы получить следующие записи ... не напрямую со страницы подробностей ... нам нужно остановить некоторую очистку данных .. Пожалуйста, помогите мне.. спасибо ...

Ответы [ 2 ]

0 голосов
/ 07 июня 2011

Согласно

Дарин Димитров

Мне так понравилось

<form id="form-details" name="formdetails" action=""></form>

в jqgrid

onSelectRow: function (id) {

                        var url = '@Url.Content("~/Search/Details/")' + id;
                        $("#form-details").attr("action", url);
                        document.forms.detailsform.submit()

                    },

, который сделал трюк .. и в моем результате действия контроллера у меня есть только результат действия как

[httpPost]
public ActionResult Details(string id)
{
}

нет прямого

 public ActionResult Details(string id)
    {
    }

таким образом он будет принимать только сообщения ..

Пожалуйста, исправьте меня, если я сделал что-то не так в соответствии с лучшими практиками ... но приведенный выше код работает нормально ... Большое спасибо, Дарин Димитров и StackOverflow ..

С уважением, Солнечный

0 голосов
/ 07 июня 2011

Вы не можете контролировать это. Именно для этого используются красивые URL-адреса, такие как controller/detials/1, чтобы пользователь мог легко перемещаться по сайту, просто изменив URL-адрес.

Имеется в виду, что у вас есть возможность обслуживать представление подробностей через действие контроллера, украшенное атрибутом [HttpPost], заставляющим глагол POST. Таким образом, если пользователь введет controller/detials/2 в адресной строке своего браузера, он получит ошибку 404. А внутри jqGrid вы будете использовать HTML <form> с методом POST вместо ссылки, чтобы перейти к этому подробному представлению.

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