2009-04-12 2 views
3

Я хочу передать значение управления вводом (например, textbox1.value или переменную javascript) в метод действия контроллера (в качестве параметра) без сообщения формы (используя Ajax.ActionLink). См. Код ниже.Получение значения ввода или переменной JavaScript в ASP.NET MVC Ajax.ActionLink

Можно ли присвоить что-то вроде new {name = textbox1.value} в Ajax.ActionLink.

Вид действия

<input type="text" id="textbox1" /> 
<%= Ajax.ActionLink("mylink", "linkfunction", new {name = textbox1.value}, new AjaxOptions { UpdateTargetId = "result"}) %> 
<span id="result"></span> 

и контроллер:

public string linkfunction(string name) 
{ 
    return DateTime.Now.ToString(); 
} 

ответ

1

Это похоже на это:

ASP.NET MVC : AJAX ActionLink- Target an HTML attribute

Кроме того, вам не нужно проходить в введите контрольное имя в свое действие.

+0

спасибо, но мой вопрос смутил вас. Я хочу передать значение textbox1 моему контроллеру (как параметр linkfunction), поэтому мне нужно каким-то образом передать textbox1.value в Ajax.ActionLink. Я не знаю, как это сделать. –

+0

Где вы можете выяснить, как выполнить задачу? Я сейчас в той же лодке, как вы, вероятно, были; Любопытно, если вы нашли решение. –

0

У меня была такая же проблема, за исключением того, что я использовал JQuery, чтобы сделать мой AJAX запрос:

$('#ajax-content').load('<%= this.Url.Action("Details", "Page", new { id = someJavascriptVariable }) %>'); 

Я получил его на работу, как это:

$('#ajax-content').load('<%= this.Url.Action("Details", "Page",) %>' + '/' + someJavascriptVariable); 

Или, в вашем случае, это может выглядеть так:

$('#ajax-content').load('<%= this.Url.Action("Details", "Page",) %>' + '?name=' + textbox1.value); 
+0

, чтобы сделать его немного чистым, вы можете передать пары ключ-значение, поскольку аргумент данных для метода загрузки и jquery будет обрабатывать конкатентацию и т. Д. –

+0

$ ('# ajax-content'). Load ('<% = this. Url.Action («Детали», «Страница»)%> ', {name = textbox1.value}); –

0

У меня была аналогичная проблема. После того, как это было указано мне, что эти функции возвращают строки остальное встало на свои места - так, попробуйте следующее

Ajax.ActionLink("mylink", "linkfunction", 
    new {name = __MyValue__}, new AjaxOptions 
    { UpdateTargetId = "result"}).Replace("__MyValue__", textbox1.value) 

Я не проверял этот фрагмент кода, но что-то вроде этого работал очень хорошо для меня.

Удачи.

Смежные вопросы