簡體   English   中英

通過MVC ASP.NET中的超鏈接將文本框的值從視圖傳遞到控制器

[英]Pass a value of textbox from view to controller through hyperlink in MVC ASP.NET

在視圖中

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

在這種情況下,我想通過此超鏈接傳遞“ xyz”。

無法使用Get或POST方法傳遞此值。

此HomePage視圖也不是當前的ActionLink視圖,因此無法使用Request.Form [“ nameString”];在Controller中獲取值。

我像下面嘗試了JQuery,但是它不起作用-

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

我檢查了調試器,發現Controller實際上正在獲取價值並對其進行處理,但瀏覽器上什么都沒有。 我不確定ajax的工作方式。

由於重定向將發生在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;
});

這將使用ajax完成,盡管這將無法處理返回頁面。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM