2011-04-29 66 views
2

我正在处理以下内容:TextBox中的ActionLink routeValue

1-用户在文本框内输入一个值。然后点击编辑进入编辑视图。

这是我的代码:

<%= Html.TextBox("Name") %> 

    <%: Html.ActionLink("Edit", "Edit")%> 

问题是我无法弄清楚如何从文本框中取的值,并把它传递给ActionLink的,你能帮帮我吗?

回答

8

你不能,除非你使用JavaScript。一种更好的方式来实现,这将是使用的一种形式,而不是一个ActionLink

<% using (Html.BeginForm("Edit", "SomeController")) { %> 
    <%= Html.TextBox("Name") %> 
    <input type="submit" value="Edit" /> 
<% } %> 

,它会自动发送用户在文本框中输入到控制器动作值:

[HttpPost] 
public ActionResult Edit(string name) 
{ 
    ... 
} 

而且如果你想使用ActionLink的这里是如何你可以设置一个javascript函数将发送值:

<%= Html.TextBox("Name") %> 
<%= Html.ActionLink("Edit", "Edit", null, new { id = "edit" })%> 

,然后:

$(function() { 
    $('#edit').click(function() { 
     var name = $('#Name').val(); 
     this.href = this.href + '?name=' + encodeURIComponent(name); 
    }); 
}); 
+0

这将路由到/ SomeController /编辑 没有名称值 – Lisa 2011-04-29 23:20:31

+0

@Shaza,是的,正好。与ActionLink相同。您只需指定定义此编辑操作的控制器即可。 – 2011-04-29 23:20:49

+0

如何路由到/ someController/Edit/Sam? – Lisa 2011-04-29 23:23:06