Sac*_*chu 3 asp.net-mvc asp.net-mvc-4
在我的表格中,我有一个文本框如下
@Html.TextBox("first_name")
Run Code Online (Sandbox Code Playgroud)
我需要通过actionlink将此文本框的值传递给控制器.
我试过以下
@Html.ActionLink("View", "view_Details", new { name = first_name})
Run Code Online (Sandbox Code Playgroud)
但这是错误的
"first_name"在当前上下文中不存在
这可能使用Actionlink吗?
我的控制器签名是
public ActionResult view_Details(string name)
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
编辑
@Html.ActionLink("View", "view_Details", new { name = getname()})
<script type="text/javascript">
function getname() {
return $("#first_name").val();
}
</script>
Run Code Online (Sandbox Code Playgroud)
我试过上面的代码.它也给出了错误
getname()在当前上下文中不存在
小智 5
您需要javascript/jquery来获取文本框的值,然后更新要重定向到的URL
HTML
@Html.ActionLink("View", "view_Details", new { id = "myLink" }) // add id attribute
Run Code Online (Sandbox Code Playgroud)
脚本
$('#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
});
Run Code Online (Sandbox Code Playgroud)
旁注:进一步编辑,你收到错误的原因是剃刀代码(在@Html.ActionLink()服务器发送到视图之前解析,但是getname()客户端方法在那时不存在 - 即它不存在在目前的背景下