簡體   English   中英

如何將值從下拉項傳遞到URL?

[英]How to pass the value to URL from dropdown item?

我再次問這個問題....因為我沒有得到正確的答案...我得到的答案不正確。

我正在開發MVC應用程序,並且正在使用razor語法。 我試圖從下拉列表值中獲取選定的項目,並將其傳遞給控制器​​方法。

但我出錯了。

$("#btnForword").click(function(){
    d =  document.getElementById("HODList").value;

    var url2 = "@Html.Raw(Url.Action("SendPaymentAdviceForApproval", "PaymentAdvice", new { paymentAdviceId = "idValue" , nHOD = "d" }))";
    url2 = url2.replace("idValue",'@Model.Id');
    url2 = url2.replace("d",'@d');

    $.ajax({
        url: url2, type: "POST", success: function (data) {
            $("#btnForword").css("display","none");

        }
    });
    return false;
});

我認為這條線有錯誤...

   url2 = url2.replace("d",'@d');

解決的問題解決的問題

變量“ D”中的問題是“ D”中的問題。

當我在控制台窗口中看到它時,我使用了Google chrome的inspect element屬性進行了檢查。...單擊該按鈕時,我可以看到以下列方式形成的字符串

  http://localhost:54255/PaymentAdvice/SendPaymentAdviceForApproval?paymentAdviceId=304&nHO8=D

jquery-1.7.1.min.js:4

看到上面鏈接中的最后一個字符,它不應該作為“ = D”來嗎?

我使用了下面的代碼...並且效果很好。

$("#btnForword").click(function(){

            var url2 = "@Html.Raw(Url.Action("SendPaymentAdviceForApproval", "PaymentAdvice", new { paymentAdviceId = "idValue" , nHOD = "HODId" }))";
            url2 = url2.replace("idValue",'@Model.Id');
            url2 = url2.replace("HODId",$('#HODList').val());


            $.ajax({
                url: url2, type: "POST", success: function (data) {
                    $("#btnForword").css("display","none");

                }
            });
            return false;
        });

這是Jquery中的錯誤嗎?

您的變量d不是可以用“ @”調用的服務器變量,而是在javascript中設置的客戶端變量,因此用戶應為:

$("#btnForword").click(function(){
    d =  document.getElementById("HODList").value;

    var url2 = "@Html.Raw(Url.Action("SendPaymentAdviceForApproval", "PaymentAdvice", new { paymentAdviceId = Model.Id , nHOD = "d" }))";
    url2 = url2.replace("d",d);

    $.ajax({
        url: url2, type: "POST", success: function (data) {
            $("#btnForword").css("display","none");

        }
    });
    return false;
});

(以及“ @ Model.Id”可以直接在Url.Action方法中調用)。

是的。 問題是js replace函數用@d變量替換url2字符串中包含的每個“ d”字符! 您需要用在URL字符串中不會出現兩次(或多次)的東西替換“ d”標識符。 此外,如果您直接使用javascript而不是Razor幫助器創建URL,我認為更好。 您可以在一行代碼中執行此操作,而不是三行代碼。 問候。

暫無
暫無

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

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