13

如何在 asp.net mvc3 中使用 @html.actionlink 从文本中传递值?

4

4 回答 4

19

这里没有一个答案真的有效。接受的答案不会像正常操作链接那样刷新页面;其余的根本不起作用,或者希望您按照说明放弃您的问题并退出使用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 值

于 2017-02-22T00:25:03.223 回答
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“mydiv”中的输出结果。

于 2012-08-17T03:46:19.070 回答
5

要将数据从客户端传递到服务器,您可以使用 html 表单:

  @using (Html.BeginForm(actionName,controllerName)) {
    <input type="text" name="myText"/>
    <input type="submit" value="Check your value!">
}

确保在控制器的方法中捕获您的 myText 变量

于 2012-07-02T12:10:34.153 回答
-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);
        }
}
于 2012-07-02T11:55:37.677 回答