我正在开发MVC应用程序,我使用的是razor语法。 我试图从下拉列表值中获取所选项目并将其传递给控制器方法。
但我收到了错误。
The name 'd' does not exist in the current context
更新的代码是......
$("#btnForword").click(function(){
d = $('#HODList').val()
alert(d);
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;
});
问题已解决问题已解决
变量'D'中的问题是“D”中的问题。
当我在控制台窗口看到它时,我使用了Google Chrome的inspect element属性进行了检查.... 当我点击按钮时,我可以看到以下面形成的字符串
HT ..... / 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中的错误吗?
答案 0 :(得分:0)
试试这个
$(function(){
$("#btnForword").click(function(){
var d = $('#HODList').val();
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;
});
});
不要考虑更换" d"因为它也会影响你网址的其他部分。请尝试使用特定的占位符。
如果这不起作用...那么你能否请出示你的Action方法的签名?
你的控制器动作应该是这样的
[HttpPost]
public JsonResult SendPaymentAdviceForApproval(int paymentAdviceId, int nHOD)
{
// Your existing logic here...
}
干杯
答案 1 :(得分:0)
您应该使用data
$.ajax
属性将参数传递给控制器操作。
$("#btnForword").click(function(){
var d = document.getElementById("HODList").value;
// define url
var url2 = 'Url.Action("SendPaymentAdviceForApproval", "PaymentAdvice")';
//url2 = url2.replace("idValue",'@Model.Id');
//url2 = url2.replace("d",'@d');
$.ajax({
url: url2,
type: "POST",
// add parameters in here...
data: { paymentAdviceId : @Model.Id, nHOD : d }
success: function (data) {
$("#btnForword").css("display","none");
}
});
return false;
});
你的控制器应该看起来:
public ActionResult SendPaymentAdviceForApproval(int paymentAdviceId, int nHOD){...}