[MVC] Параметры Get в Route values
От: cadet354 Россия
Дата: 01.09.10 11:29
Оценка:
Доброго времени,
есть форма с method="get" которая шлет запрос на сервер,
урл получается следующий:
/Objects/Search?What=<что ищем>&Lat=<широта>&Lon=<долгота>

где Objects имя контроллера, Search=action
можно ли как-то преобразовать в урл следующего вида:
/Objects/Search/What/<что ищем>/Lat/<широта>/Lon/<долгота>

в таблице роутингов такой роут соответсвенно прописан.
Если нельзя то как задать то что некоторые парметры можно опустить в запросе.
сейча на следующий шаблон:
routes.MapRoute(
            "ObjectsSearch",
            "Objects/Search?What={What}&Lat={Lat}&Lon={Lon}",
            new { controller = "Objects", action = "Search", Lat = UrlParameter.Optional, Lon=UrlParameter.Optional});

справедливо ругается:

[ArgumentException: The route URL cannot start with a '/' or '~' character and it cannot contain a '?' character.
Parameter name: routeUrl]

... << RSDN@Home 1.2.0 alpha 4 rev. 1270>>
Re: [MVC] Параметры Get в Route values
От: mogadanez Чехия  
Дата: 01.09.10 12:49
Оценка:
Здравствуйте, cadet354, Вы писали:

C>Доброго времени,

C>есть форма с method="get" которая шлет запрос на сервер,
C>урл получается следующий:
C>
C>/Objects/Search?What=<что ищем>&Lat=<широта>&Lon=<долгота>
C>

C>где Objects имя контроллера, Search=action
C>можно ли как-то преобразовать в урл следующего вида:
C>
C>/Objects/Search/What/<что ищем>/Lat/<широта>/Lon/<долгота>
C>




          routes.MapRoute(
                "zzz", // Route name
                "Objects/Search/{what}/{lat}/{lon}",
                new { controller = "Objects", action = "Search"}
                );



будет отвечать
и по
Objects/Search?What=<что ищем>&Lat=<широта>&Lon=<долгота>
и по
Objects/Search/<что ищем>/<широта>/<долгота>
Re[2]: [MVC] Параметры Get в Route values
От: cadet354 Россия
Дата: 01.09.10 13:23
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>Здравствуйте, cadet354, Вы писали:


C>>Доброго времени,

C>>есть форма с method="get" которая шлет запрос на сервер,
C>>урл получается следующий:
C>>
C>>/Objects/Search?What=<что ищем>&Lat=<широта>&Lon=<долгота>
C>>

C>>где Objects имя контроллера, Search=action
C>>можно ли как-то преобразовать в урл следующего вида:
C>>
C>>/Objects/Search/What/<что ищем>/Lat/<широта>/Lon/<долгота>
C>>




M>
M>          routes.MapRoute(
M>                "zzz", // Route name
M>                "Objects/Search/{what}/{lat}/{lon}",
M>                new { controller = "Objects", action = "Search"}
M>                );
M>



M>будет отвечать

M>и по
M>Objects/Search?What=<что ищем>&Lat=<широта>&Lon=<долгота>
M>и по
M>Objects/Search/<что ищем>/<широта>/<долгота>
так дело в том, что хотелось бы Objects/Search/What/<что ищем>/Lat/<широта>/Lon/<долгота>, причем Lat и Lon очень хотелось бы
можно конечно повеситься на form.submit и переколбасить урл, но думал что есть прямее путь
... << RSDN@Home 1.2.0 alpha 4 rev. 1270>>
Re[3]: [MVC] Параметры Get в Route values
От: mogadanez Чехия  
Дата: 01.09.10 15:32
Оценка:
Здравствуйте, cadet354, Вы писали:

C>так дело в том, что хотелось бы Objects/Search/What/<что ищем>/Lat/<широта>/Lon/<долгота>, причем Lat и Lon очень хотелось бы

C>можно конечно повеситься на form.submit и переколбасить урл, но думал что есть прямее путь

прости, а зачем? читабельность в этом случае нифига не повышается, ибо нету четкой связи ( ввиде = ) между именем параметра и значением
хочешь с именами параметров — так и используй как раньше Lat=xx&Lon=yyy
Re[4]: [MVC] Параметры Get в Route values
От: cadet354 Россия
Дата: 02.09.10 06:04
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>Здравствуйте, cadet354, Вы писали:


C>>так дело в том, что хотелось бы Objects/Search/What/<что ищем>/Lat/<широта>/Lon/<долгота>, причем Lat и Lon очень хотелось бы

C>>можно конечно повеситься на form.submit и переколбасить урл, но думал что есть прямее путь

M>прости, а зачем? читабельность в этом случае нифига не повышается, ибо нету четкой связи ( ввиде = ) между именем параметра и значением

M>хочешь с именами параметров — так и используй как раньше Lat=xx&Lon=yyy
может на мне сказывается тяжелое наследие dnn (там так принято передавать параметры), правда сейчас посмотрел в книге MVC in Action, там тоже приводят подобные схемы:
http://example.com/sessions/129/introduction-toasp-net-mvc
... << RSDN@Home 1.2.0 alpha 4 rev. 1270>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.