我想通过我的@HtmlTextBox("UserName")
从我的视图中将@html.ActionLink
的值传递给我的控制器中的get方法。这是我尝试过的:
@Html.TextBox("UserName")
@foreach (string s in ViewBag.RolesForThisUser)
{
<tr>
<td>
@s
</td>
<td>
@Html.ActionLink("Remove Role", "DeleteRoleForUser",
new{controller = "Role",
UserName=@Html.TextBox("UserName").ToString(), RoleName=@s})
</td>
</tr>
}
如果这超出范围,似乎有点棘手。这适用于RoleName变量,因为它在范围内。是否无法使用给定的变量获取值?
解决 从Scartag那里得到了一个问题,我想出了这个
$(function () {
$("#lnk")
.click(function () {
console.log("my message");
var userName = $("#UserName").val();
this.href = this.href + '&UserName=' + userName;
});
});
答案 0 :(得分:1)
你的做法是错误的。
每次看到@Html.TextBox("UserName")
标记时,都告诉运行时要创建一个带有id和名称的输入字段&#34;用户名&#34; ...这就是全部。
它不会转化为价值。
然而,您可以使用javascript向onclick
添加actionlink
,这会在导航到您希望它到达的任何网址之前附加文本框的值。
答案 1 :(得分:0)
一种方法是检查FormCollection您要发布的值
[HttpPost]
public ActionResult SubmitAction(FormCollection collection)
{
// Get Post Params Here
string var1 = collection["UserName"];
}
检查您是否使用正确的ID名称来检索值