2015-01-25 1 views
0

У меня есть форма на моей главной странице asp.net mvc, и когда я ввожу текст в текстовое поле «местоположение» и нажимаю кнопку ввода «отправить», он передает значение из текстовое поле в качестве параметров в URL-адресе. Почему это и как его изменить, чтобы я мог передавать все, что захочу, в качестве параметров, а не только текст из текстового поля? Как механизм маршрутизации получает текст из поля ввода?Как мой url получает мой ввод текста как параметры

Вот что URL выглядит и код формы ниже

https://localhost:44300/Home/Results?location=San+Francisco 

@using (Html.BeginForm("Results", "Home", FormMethod.Get)) 
{ 
    <p> 
     <input type="text" name="location" id="location" placeholder="Search For A Studio" /> 
    </p> 
    <p> 
     <input class="btn btn-primary btn-lg" value='Submit' type="submit"/> 
    </p> 
} 
+1

Вы делаете 'FormMethod.Get' который добавляет значения формы в качестве параметров строки запроса (неуверенные, почему вы это делаете, в отличие от записи, используя' FormMethod .Post'). Вы можете добавить значения маршрута, используя одну из перегрузок [BeginForm] (https://msdn.microsoft.com/en-us/library/system.web.mvc.html.formextensions.beginform (v = vs.118). aspx), который принимает 'routeValues' - например 'Html.BeginForm (« Результаты »,« Главная », новый {someParameter = someValue}, FormMethod.Get' –

+0

Не совсем понятно, что вы хотите сделать. Вы можете использовать FormMethod.GET для (скажем) параметра поиска, где вы отправьте обратно в «ActionResult Results» (местоположение строки) и верните представление, основанное на параметре. –

ответ

0

Вот что я сделал.

@{ 
    var routeValues = new RouteValueDictionary(); 
    routeValues.Add("Longitude", "5"); 
    routeValues.Add("Latitude", "6"); 
} 

@using (Html.BeginForm("Results", "Home", routeValues, FormMethod.Post)) 
{ 
    <p> 
     <input type="text" name="location" id="location" placeholder="Search For A Studio" /> 
    </p> 
    <p> 
     <input class="btn btn-primary btn-lg" value='Submit' type="submit"/> 
    </p> 
} 

Это дает мне маршрут

http://someWebsiteName/Home/Results&Longitude=5&Latitude=6 
Смежные вопросы