如何选择下拉列表值传递给在MVC网址? [英] How to pass the selected dropdown value to a URL in MVC?

查看:74
本文介绍了如何选择下拉列表值传递给在MVC网址?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开发MVC应用程序,我用剃刀语法。
我试图从下拉列表中值选定的项目,并把它传递给控制器​​的方法。

但我正在逐渐错误。

 名称'D'不会在目前情况下存在

该更新code是...

  $(#btnForword)。点击(函数(){
    D = $('#HODList)。VAL()
    警报(D);    VAR URL2 =@ Html.Raw(Url.Action(SendPaymentAdviceForApproval,PaymentAdvice,新{paymentAdviceId =idValue,nHOD =@@Ð@@}))
    URL2 = url2.replace(idValue,@ Model.Id');
    URL2 = url2.replace(@@Ð@@,D);    $阿贾克斯({
        网址:URL2,键入:POST,成功:功能(数据){
            $(#btnForword),CSS(显示,无)。        }
    });
    返回false;
});


  

问题解决的问题解决了。


在变量D的问题是在D。

我检查检查使用谷歌浏览器元素属性,当我看到它在控制台窗口中....
当我按一下按钮,我可以看到形成以下方式字符串

HT ..... / PaymentAdvice / SendPaymentAdviceForApproval paymentAdviceId = 304安培; nHO8 = D

jQuery的-1.7.1.min.js:4

看到上面的链接的最后一个字符,它不应该来作为一个= D是不是?

我用下面的code ...和它完美的作品。

  $(#btnForword)。点击(函数(){            VAR URL2 =@ Html.Raw(Url.Action(SendPaymentAdviceForApproval,PaymentAdvice,新{paymentAdviceId =idValue,nHOD =HODId}));
            URL2 = url2.replace(idValue,@ Model.Id');
            URL2 = url2.replace(HODId,$('#HODList)VAL());
            $阿贾克斯({
                网址:URL2,键入:POST,成功:功能(数据){
                    $(#btnForword),CSS(显示,无)。                }
            });
            返回false;
        });

这是jQuery中的错误吗?


解决方案

试试这个

  $(函数(){$(#btnForword)。点击(函数(){
    变种D = $('#HODList)VAL()。    VAR URL2 =@ Html.Raw(Url.Action(SendPaymentAdviceForApproval,PaymentAdvice,新{paymentAdviceId =idValue,nHOD =@@Ð@@}));
    URL2 = url2.replace(idValue,@ Model.Id');
    URL2 = url2.replace(@@Ð@@,D);    $阿贾克斯({
        网址:URL2,键入:POST,成功:功能(数据){
            $(#btnForword),CSS(显示,无)。        }
    });
    返回false;
   });
});

不考虑更换D,因为它会影响到URL中的另一部分以及..尽量具体占位代替。
如果这不是工作...那么能否请您出示行动方法的签名呢?

您控制器操作应该是这样的。

  [HttpPost]
公共JsonResult SendPaymentAdviceForApproval(INT paymentAdviceId,诠释nHOD)
{
   //您现有的逻辑在这里...
}

干杯

I am developing MVC application and I am using razor syntax. I am trying to get the selected item from dropdown list value and to pass it to the controller method.

but I am getting error.

The name 'd' does not exist in the current context

The Updated Code is...

   $("#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;
});

Issue solved Issue solved

The problem in variable 'D' yes in "D".

I checked using inspect element property of Google chrome, when I saw it in console window.... When I click on the button , I can see the string formed in below way

ht...../PaymentAdvice/SendPaymentAdviceForApproval?paymentAdviceId=304&nHO8=D

jquery-1.7.1.min.js:4

see the last character in the above link, it should not be come as a "=D" isnt it ?

I used the below code...and it works perfectly.

$("#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;
        });

Is this a bug in Jquery ?

解决方案

Try this

$(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;
   });
});

don't consider replacing "d" as it will affect your other part of url as well.. Try specific placeholder instead. If this not works... Then can you please show Signature of your Action method too?

Your controller action should be like this

[HttpPost]
public JsonResult SendPaymentAdviceForApproval(int paymentAdviceId, int nHOD)
{
   // Your existing logic here... 
}

Cheers

这篇关于如何选择下拉列表值传递给在MVC网址?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆