如何在asp.net mvc3中使用@html.actionlink传递文本中的值?
答案 0 :(得分:14)
这里的答案都没有真正奏效。接受的答案不会刷新页面,因为正常的操作链接会;其余的根本不起作用或者希望你放弃你所说的问题并使用ActionLink
退出。
<强> MVC3 / 4 强>
您可以使用htmlAttributes
方法的ActionLink
来做您想要的事情:
Html.ActionLink("My Link Title", "MyAction", "MyController", null, new { onclick = "this.href += '&myRouteValueName=' + document.getElementById('myHtmlInputElementId').value;" })
<强> MVC5 强>
报告了以下错误,但我尚未对其进行验证:
检测到潜在危险的Request.Path值
答案 1 :(得分:5)
不要使用@ Html.actionlink传递您的值,而是尝试使用jquery将文本框值传递给控制器:
$(function () {
$('form').submit(function () {
$.ajax({
url: this.action,
type: this.method,
data: { search: $('#textboxid').val()},
success: function (result) {
$('#mydiv').html(result);
}
});
return false;
});
});
此代码会将您的文本框值发布到控制器并返回将在div&#34; mydiv&#34;中加载的输出结果。
答案 2 :(得分:3)
将数据从客户端传递到服务器,您可以使用html表单:
@using (Html.BeginForm(actionName,controllerName)) {
<input type="text" name="myText"/>
<input type="submit" value="Check your value!">
}
确保在控制器的方法中捕获myText变量
答案 3 :(得分:-4)
您可以使用此代码(YourValue = TextBox.Text)
Html.ActionLink("Test", new { controller = "YourController", action = "YourAction", new { id = YourValue }, null );
public class YourController : Controller
{
public ActionResult YourAction(int id)
{
return View("here your value", id);
}
}