В моем asp.net-mvc ontroller я принимаю кучу значений поля формы, и из них создаются строки, которые понимает библиотека Lucene. Затем я хочу перенаправить метод get, который будет показывать результаты в зависимости от этой строки lucene.Где я должен добавить строку запроса (url-encoded) в моем названном маршруте?
Строка Lucene в шаблоне {FIELDNAME1: value1 FIELDNAME2: value2 ...}
мой Global.asax имеет следующую запись для целевого перенаправления:
routes.MapRoute(
"AdvancedSearch",
"AdvancedSearch.mvc/{displayType}/luceneString",
new { controller = "Search", action = "AdvancedSearch",
displayType = "chip", luceneString = "" }
);
Так что мой контроллер уловов пост, создает luceneString и выполняет следующие функции:
return RedirectToRoute("AdvancedSearch", new
{
Controller = "Search",
action = "AdvancedSearch",
displayType = "chip",
queryString = Url.Encode("company:test name:testname")
});
Это дает мне 500: плохой запрос. Даже с одним параметром он не работает. Даже с «:» это не работает.
Я пробовал:
- AdvancedSearch.mvc/чип/Компания% 3Atest + имя% 3AtestName
- AdvancedSearch.mvc/чип/компания: тест + название: АСМАП
- AdvancedSearch.mvc/чип/компании : тест
- AdvancedSearch.mvc/чип/компания% 3Atest
Это работает только если я изменить этот адрес, чтобы взять QueryString в формате
AdvancedSearch.mvc/chip?q=company%3Atest+name%3AtestName
Что я должен сделать, чтобы получить право кодирования, не прибегая к «? Д =»
Если я должен использовать строку запроса, как я могу определить такую вещь в таблице маршрутов? Как мне перейти на перенаправление?
У меня нет ответа, но это звучит, как вы пытаетесь получить АСП-MVC, чтобы сделать что-то, что не должны. Маршруты должны быть RESTful способом замены строк запроса. Я понимаю, что Луцен может потребовать этого, но любое решение, которое вы придумали, скорее всего, будет перемахом. –
Как так? Если я правильно понял, мой URL будет RESTfull. Запрос на получение URL-адреса всегда будет возвращать одну и ту же страницу. Никакой сессии или вообще не требуется. Просто последняя часть моего URL-адреса содержит строку запроса. –
Мои запросы на отправку будут перенаправлены на запрос GET. Они все равно будут без гражданства. Является ли тот факт, что последняя часть моего URL-адреса является lucene-строкой, делает RESTless? –