在我的 ASP.NET MVC 应用程序中,我希望用户将值添加到文本框中,然后按我的 Ajax.ActionLink。我想做这样的事情:
Ajax.ActionLink("Go", "Action", "Controller", new { value = textbox1.value })
或者我怎样才能让这个文本框值回到我的操作中?jQuery?
在我的 ASP.NET MVC 应用程序中,我希望用户将值添加到文本框中,然后按我的 Ajax.ActionLink。我想做这样的事情:
Ajax.ActionLink("Go", "Action", "Controller", new { value = textbox1.value })
或者我怎样才能让这个文本框值回到我的操作中?jQuery?
您可以使用 AJAX $.get方法运行操作:
<script type="text/javascript">
$(document).ready(function()
{
$("#t").change(function()
{
RunAction();
});
RunAction();
});
function RunAction()
{
var action = '<%= Url.Action("Action", "Controller") %>';
var data = $("#t").serialize();
$.get(action, data);
}
</script>
<input type="text" id="t" />
非常感谢亚历山大!谢谢你让我走上正确的道路。我没有尝试你最新的代码,但我能够让你以前的代码工作。这是工作代码。我敢肯定这一切都很笨拙,但也许有人可以向我展示一个更优雅的解决方案:
<script type="text/javascript">
$(document).ready(function() {
$("#myVal").change(function() {
changeActionURL();
});
changeActionURL();
});
function changeActionURL() {
var url = '<%= new UrlHelper(ViewContext.RequestContext).Action("Action", "Controller") %>' + '?dup=' + $("#myVal").val();
$("#u").attr('href', url);
}
</script>
<a id="u" href="" onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: 'HellaYeah' });">Report Dupe</a>
</p>
<div id="response">not done</div>
如您所见,我的解决方案只是对 LINK 进行硬编码,而不是尝试使用 ASP.NET AJAX 帮助器类。
这就是您从 JQuery 中的文本框中检索值的方式
var input = $('input[name=txt_MyTextBox]').val()
替换 $.get(action, data); 与 $("#yourTargetId").load(action, data); 你得到一个ajax,如下所示:
<script type="text/javascript">
$(document).ready(function()
{
$("#t").change(function()
{
RunAction();
});
RunAction();
});
function RunAction()
{
var action = '<%= Url.Action("Action", "Controller") %>';
var data = $("#t").serialize();
$("#yourTargetId").load(action, data);
}
</script>
<input type="text" id="t" />