Получение входного значения или переменной JavaScript в ASP.NET MVC Ajax.ActionLink - PullRequest
3 голосов
/ 13 апреля 2009

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

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

View

<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();
}

Ответы [ 3 ]

1 голос
/ 13 апреля 2009

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

ASP.NET MVC: AJAX ActionLink - настроить атрибут HTML

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

0 голосов
/ 30 сентября 2012

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

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

Я не тестировал этот фрагмент, но что-то вроде этого мне очень помогло.

Удачи.

0 голосов
/ 16 апреля 2010

У меня была такая же проблема, за исключением того, что я использовал 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...