Как передавать текстовое поле из view на его собственный контроллер снова и снова?

#c# #asp.net #asp.net-mvc #linq #textbox

#c# #asp.net #asp.net-mvc #linq #текстовое поле

Вопрос:

Что я пытаюсь сделать, так это передать значение текстового поля этого определенного представления его собственному контроллеру.

В представлении есть только 1 текстовое поле, текстовое поле для идентификатора, затем контроллер выполняет запрос linq, который выполняет поиск в базе данных, соответствующей этому идентификатору.

Итак, когда я запускаю свою программу, сначала она показывает пустой gridview и пустое текстовое поле. Что я хочу сделать, так это когда я ввожу текст в текстовое поле и нажимаю submit , он вызывает свой собственный контроллер и передает значение текстового поля, содержащего идентификатор, чтобы запросу linq было что использовать, чтобы он мог отобразить результат поиска.

Я имел смысл? :0 извините, я всего лишь новичок.

Комментарии:

1. вы можете использовать вызов ajax и загрузить частичное представление, чтобы заполнить свою сетку отфильтрованными данными…

2. вы можете быть более конкретными? возможно, пример помог бы.

Ответ №1:

Вы можете получить это значение текстового поля, используя коллекцию форм, например, ваше представление может выглядеть следующим образом

 @model MvcMovie.Models.Movie

@{
ViewBag.Title = "Create";
}


@using (Html.BeginForm("controllerName","ActionName",FormMethod.Post)) 
{
@Html.ValidationSummary(true)

<fieldset>
    <legend>Movie</legend>

    <div class="editor-label">
        @Html.TextBox("Name",null,New {id="Name"})
    </div>

<div class="editor-label">
        <input type="submit" value="save" />
    </div>
</fieldset>
}

In controller,
[HttpPost]
Public ActionResult MethodName(FormCollection form)
{
string name = form["Name"];

// name contains your textbox value
}
  

Ответ №2:

 database acces ? 

query; 

OleDbDataReader readername;
OleDbCommand commandname = new OleDbCommand("Select textBox1.Text=@" textBox1.Text " from tablename",connectionname);

connectionname.Open();
readername = commandname.ExecuteReader();
while (readername.Read()) //the result
{
label1.Text = readername[textbox1.Text].ToString(); 
}
connectionname.Close();
  

Комментарии:

1. Ответы, основанные только на коде, которые вполне могут быть работоспособным решением, обычно улучшаются некоторыми объяснениями. Пожалуйста, подумайте о том, чтобы прокомментировать или объяснить, как работает предложенный вами код.