Куда поместить ParseUrl () или аналогичную функцию, которая работает с хранилищем данных, в ASP.NET MVC? - PullRequest
0 голосов
/ 08 июля 2010

Если вы должны были закодировать функцию / метод, который для введенной строки или слага (например, в представлении «Создать» или «Редактирование») перейдет в хранилище данных и проверит, существует ли эта строка или слаг, и в этом случае создаст ссылку на него где бы вы это поместили?

Например, у нас есть текстовое поле «Ссылка» в нашей форме создания или редактирования. Я подключил к нему автозаполнение jQuery, которое извлекает существующие слагы страниц. Если пользователь решит выбрать один из них, мы создадим ссылку, которая указывает на содержимое нашего сайта, на основе контроллера страницы, например:

~/Page/Display/some-slug

или просто

~/Page/some-slug

Если, однако, пользователь решает ничего не выбирать и вводит, например, www.google.com, мы перехватываем его в нашем ParseUrl (), форматируем его с помощью http: // ... и т. Д. И сохраняем его таким образом.

Код для функции не является проблемой, и у меня он сейчас работает в Model Binder. Однако из-за странных, запутанных и противоречивых практик с DI в Model Binder я хотел бы перенести это куда-нибудь еще. Другой причиной может быть удаление кода доступа к данным из связывателей моделей.

Вопрос - куда движется такая функциональность? Если возможно, я бы хотел избежать повторения вызовов ParseUrl () для различных действий контроллера.

1 Ответ

0 голосов
/ 09 июля 2010

1) Реализуйте это так, чтобы оно имело смысл для вас и вашей команды .

-или-

2) Оставьте там, где он есть, потому что он уже работает. Поможет ли это сделать ваше приложение лучше, ваши клиенты будут счастливее, сроки будут выполняться быстрее?

Нет волшебного бога грома Asp.net MVC, который спускается с небес, чтобы поразить вас, если вы осмелитесь использовать неверную точку расширения. Никто не собирается называть тебя идиотом. Люди могут не соглашаться, но это происходит. Можно "пойти на это" и выполнить все, прежде чем быть архитектурно чистым .

" Однако из-за странной, запутанной и противоречивой практики с DI в связывателях моделей "

Что это вообще значит?

...