Как передать значение 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);
}
}