Javascript 如何将值从下拉项传递到URL?
我再次问这个问题…因为我没有得到正确的答案。。。 我得到的答案是不正确的 我正在开发MVC应用程序,我正在使用razor语法。我试图从下拉列表值中获取所选项目,并将其传递给控制器方法 但是我犯了一个错误Javascript 如何将值从下拉项传递到URL?,javascript,asp.net-mvc,asp.net-mvc-3,Javascript,Asp.net Mvc,Asp.net Mvc 3,我再次问这个问题…因为我没有得到正确的答案。。。 我得到的答案是不正确的 我正在开发MVC应用程序,我正在使用razor语法。我试图从下拉列表值中获取所选项目,并将其传递给控制器方法 但是我犯了一个错误 $("#btnForword").click(function(){ d = document.getElementById("HODList").value; var url2 = "@Html.Raw(Url.Action("SendPaymentAdviceForApp
$("#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元素属性进行了检查。。。。
当我点击按钮时,我可以看到下面的字符串
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中的一个bug吗 是的。问题是js replace函数用@d变量替换url2字符串中包含的每个“d”字符!!!
您需要将“d”标识符替换为在url字符串中不会出现两次(或更多)的标识符。此外,我认为直接使用javascript而不是Razor助手创建url更好。您可以在一行代码而不是三行代码中完成此操作。问候 是的。问题是js replace函数用@d变量替换url2字符串中包含的每个“d”字符!!!
您需要将“d”标识符替换为在url字符串中不会出现两次(或更多)的标识符。此外,我认为直接使用javascript而不是Razor助手创建url更好。您可以在一行代码而不是三行代码中完成此操作。问候 变量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;
});
(并且可以在Url.Action方法中直接调用“@Model.Id”。您的变量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;
});
(并且可以在Url.Action方法中直接调用“@Model.Id”。的副本。“我再次问这个问题……因为我没有得到正确的答案……我得到的答案是不正确的。”-不要这样做,改进你的问题。重复。“我再次问这个问题……因为我没有得到正确的答案……我得到的答案是不正确的。”-不要这样做,改进你的问题。是的,你是对的……我应该读你的答案,但我不。。。我浪费我的一天。。。。谢谢…是的,你是对的…我应该读你的答案,但我不。。。我浪费我的一天。。。。谢谢