Как передать значение textbox с помощью @html.actionlink панели в asp.net в MVC 3

Как передать значение из текста с помощью @html.actionlink в asp.net mvc3 ?

4 ответов


вместо передачи значения с помощью @Html.actionlink, попробуйте jQuery передать значение текстового поля контроллеру как:

$(function () {
    $('form').submit(function () {
        $.ajax({
            url: this.action,
            type: this.method,
            data: { search: $('#textboxid').val()},
            success: function (result) {
                $('#mydiv').html(result);
            }
        });
        return false;
    });
});

этот код отправит ваше значение textbox на контроллер и вернет результат вывода, который будет загружен в div "mydiv".


ни один из ответов здесь действительно работают. Принятый ответ не обновляет страницу, как обычная ссылка на действие; остальные просто не работают вообще или хотят, чтобы вы отказались от своего вопроса, как указано, и прекратили использовать ActionLink.

MVC3/4

можно использовать htmlAttributes на ActionLink метод, чтобы сделать то, что вы хотите:

Html.ActionLink("My Link Title", "MyAction", "MyController", null, new { onclick = "this.href += '&myRouteValueName=' + document.getElementById('myHtmlInputElementId').value;" })

MVC5

была сообщена следующая ошибка, но я не проверил это:

потенциально опасный запрос.Обнаружено значение пути


для передачи данных от клиента на сервер вы можете использовать html-форму:

  @using (Html.BeginForm(actionName,controllerName)) {
    <input type="text" name="myText"/>
    <input type="submit" value="Check your value!">
}

обязательно поймайте переменную myText внутри метода вашего контроллера


вы можете использовать этот код (значение = поле.Текст)

Html.ActionLink("Test", new { controller = "YourController", action = "YourAction", new { id = YourValue }, null );

public class YourController : Controller
{
        public ActionResult YourAction(int id)
        {
            return View("here your value", id);
        }
}