通过MVC ASP.NET中的超链接将文本框的值从视图传递到控制器

时间:2015-01-27 22:23:15

标签: c# jquery asp.net-mvc asp.net-mvc-4 asp.net-ajax

在视图中 -

<input type="text" hidden="hidden" id= "nameString" name="nameString" value="xyz" />
@Html.ActionLink("Save", "HomePage", "ControllerName", new { nameString = "/* Value from above input here.*/" })

在这种情况下,我想通过&#34; xyz&#34;通过这个超链接。

无法使用Get或POST方法传递此值。

此HomePage视图也不是当前的ActionLink视图,因此无法使用Request.Form获取Controller中的值[&#34; nameString&#34;];

我尝试过JQuery,但它不起作用 -

var nameVar = document.getElementById('nameString').value;
$.ajax({
                type: 'GET',
                url: "@Url.Action("HomePage", "ControllerName")",
                data: { nameString : nameVar }                   
            });

我在调试器中检查过,看到Controller实际上正在获取价值并处理它,但浏览器上没有任何内容。我不确定ajax是如何工作的。

2 个答案:

答案 0 :(得分:1)

因为重定向将在jquery中发生,所以你不需要帮助

<input type="button" class="btnRedirect" value="Click Here" />

然后在你的脚本中

$('.btnRedirect').on('click', function(){
    var url = '@Url.Action("HomePage", "ControllerName", new { textValue = "----" })'.replace("----", $('#nameString').val());
    window.location = url;
});

答案 1 :(得分:0)

这是如何用ajax完成的,虽然这不会处理返回页面。

var name = $("#nameString").value;
$.get("/ControllerName/HomePage",{ nameString : nameVar })
           .done(function(){
                 window.location.assign("/ControllerName/HomePage");
                 });