Я относительный нуб MVC, пришедший из WebForms. Я думаю, что у меня есть довольно хорошее представление о MVC с несколькими исключениями, и я думаю, что, возможно, сломал шаблон. Я постараюсь сохранить это вкратце, поэтому я предполагаю, что большая часть того, что я спрашиваю, относительно очевидна.
Допустим, у меня есть новостной сайт со статьями. В этом случае URL в форме mynewssite.com/Articles/123 работает просто замечательно, потому что мне все равно, кто какую статью просматривает. Пользователь может изменить ArticleID в URL-адресе на любой другой, который он хочет, и открыть эту статью. В моем случае, однако, я только хочу, чтобы пользователь мог просматривать / редактировать объекты данных (статьи или что-то еще), которые принадлежат ему. Чтобы добиться этого, я использую их UserID (GUID) в качестве внешнего ключа в базе данных и отображаю список их данных для их выбора. Здесь возникает проблема ... когда они нажимают на ссылку, созданную Url.Action («Редактировать», New With {.id = item.id}) (я не использую ActionLink, потому что мне нужно добавить HTML-контент внутри ссылки) идентификатор отображается как параметр строки запроса. Я мог бы добавить маршрут для него, но идентификатор все равно будет отображаться в URL, чтобы они могли вмешиваться. Очевидное следствие заключается в том, что, изменяя URL, они могут просматривать / редактировать любую сущность, которую хотят.
Чего мне не хватает?
Есть ли хороший способ передать параметры без добавления их в URL? Я знаю, что мог бы поместить их в форму на странице и отправить форму, но это кажется громоздким для моего примера, и я использую jQuery.ajax в местах, которые, кажется, противоречат этой идее.
Я мог бы также проверить их UserID по данным в методе Edit, но это также кажется громоздким.
Этот вопрос слишком широкий? Пожалуйста, дайте мне знать, какие особенности вам нужны. Спасибо.