[英]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.