使用actionlink将文本框的值从视图传递到控制器

时间:2015-07-23 07:59:49

标签: asp.net-mvc asp.net-mvc-4

在我的表单中,我有一个文本框,如下所示

@Html.TextBox("first_name")

我需要通过actionlink将此文本框的值传递给控制器​​。

我尝试了下面的

@Html.ActionLink("View", "view_Details", new { name = first_name})

但这是错误

  

“first_name”在当前上下文中不存在

这可以使用Actionlink吗?

我的控制器签名是

public ActionResult view_Details(string name)
     {
            return View();
     }

被修改

 @Html.ActionLink("View", "view_Details", new { name = getname()})

 <script type="text/javascript">
      function getname() {
           return $("#first_name").val();
       }
</script>

我尝试了上面的代码。它也给出了错误

  

getname()在当前上下文中不存在

1 个答案:

答案 0 :(得分:5)

您需要javascript / jquery来获取文本框的值,然后更新要重定向到的网址

HTML

@Html.ActionLink("View", "view_Details", new { id = "myLink" }) // add id attribute

脚本

$('#myLink').click(function() {
  var firstname = $('#first_name').val(); // get the textbox value
  var url = $(this).attr('href') + '?name=' + firstname; // build new url
  location.href = url; // redirect
  return false; // cancel default redirect
});

旁注:进一步编辑,您收到该错误的原因是剃刀代码(@Html.ActionLink()在发送到视图之前在服务器上进行了解析,但getname()是客户端方法在那一点上不存在 - 即它在当前上下文中不存在