У меня есть форма на моей главной странице 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>
}
Вы делаете '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' –
Не совсем понятно, что вы хотите сделать. Вы можете использовать FormMethod.GET для (скажем) параметра поиска, где вы отправьте обратно в «ActionResult Results» (местоположение строки) и верните представление, основанное на параметре. –