Javascript 连接dropdownlist以运行控制器中的功能

Javascript 连接dropdownlist以运行控制器中的功能,javascript,c#,json,asp.net-mvc,vb.net,Javascript,C#,Json,Asp.net Mvc,Vb.net,所以是的。。。我一直在搜索有关连接dropdownlist的信息,以便它在控制器中使用asp.net mvc工具运行函数 $(function() { $("#title").change(function() { var selectedVal=$(this).val(); $.getJSON("UserController/YourAction",{ id: selectedVal } , function(result) {

所以是的。。。我一直在搜索有关连接dropdownlist的信息,以便它在控制器中使用asp.net mvc工具运行函数

$(function() {
    $("#title").change(function() {
        var selectedVal=$(this).val();
        $.getJSON("UserController/YourAction",{ id: selectedVal } , function(result) {
            //Now you can access the jSon data here in the result variable
        });
    });
});
假设在
UserController
中有一个名为
YourAction
的操作方法,该方法返回JSON

public ActionResult YourAction(int id)
{
    //TO DO : get data from wherever you want. 
    var result=new { Success="True", Message="Some Info"};
    return Json(result, JsonRequestBehavior.AllowGet); 
}
所以当我用这个的时候,它什么都没做??? 我不知道json是什么,但我知道我不需要我的应用程序返回任何东西

所以这就是我们尝试过的。。。在编辑表单中,我有以下元素:

$('#RES_TEST_ID').change(function () {
    var CurVID = $(this).val();
    var IntVID = $(document.getElementById('BUVID')).val();
    //alert(CurVID);
    //alert(IntVID);
    debugger 
    $.getJSON("TEST_REQUESTController/CheckCTEST", { Int_TEST_ID: IntTID, Cur_TEST_ID: CurTID }, function (result) {
    }); 
});
在编辑控制器中。。。我在Post和Get部分都厌倦了这一部分,因为Post没有说明您应该在控制器中添加这一部分:

public ActionResult CheckChangeTEST(int Int_TEST_ID, int Cur_TEST_ID)
{
    if (Int_TEST_ID != Cur_TEST_ID)
    {
        var SelectedTEST = db.TEST_TEST_INFO.Find(Int_TEST_ID);
        SelectedTEST.VI_STATUS = 1;
        SelectedTEST = db.TEST_TEST_INFO.Find(Cur_TEST_ID);
        SelectedTEST.VI_STATUS = 2;
        var result = new { Success = "True", Message = "Some Info" };
        return Json(result, JsonRequestBehavior.AllowGet);
    }
    return null;
}

对我来说,什么都没发生。。。我试图看到断点,但它们从未到达控制器。我再次将它放在编辑控件下的Post和get部分,因为我希望在用户编辑更改下拉列表中的值时运行它。有人有什么想法可以分享吗

在对控制器的ajax调用中,需要修复控制器和操作的路由参数。框架自动理解“控制器”名称。所以,如果您有FooController,并且希望路由到Bar操作方法,那么您的URL路径将是
“Foo/Bar”

应该是

$.getJSON("TEST_REQUEST/CheckChangeTEST" ...
此外,在您的操作上,您还可以使用“获取属性装饰器”(Get attribute decorator)装饰该操作:

[HttpGet]
public ActionResult CheckChangeTEST(int Int_TEST_ID, int Cur_TEST_ID)
{
    //your code
}

如果您的控制器是
UserController
,而您的方法是
YourAction()
,那么url需要是
'/User/YourAction'
,而不是
'UserController/YourAction'
),而是始终使用
@url.Action(“YourAction”,“User”)
来生成正确的url。只需使用浏览器工具调试代码,就可以很明显地看到您遇到了404错误Hi stephen。。。我没有收到404错误,只是在调试javascript调试时不会转到调试,而不是后面的代码。。。。所以我不知道它在调用函数。。。我不知道我在做什么如果我是诚实的。。。所以我也都是拉丁语。。那么你是说使用@而不是fwd斜杠,如果我可以问的话,@会做什么?非常感谢你的帮助。。。我将尝试所有这些建议。谢谢如果打开浏览器开发人员工具(F12)并查看console选项卡,您会看到错误还有什么是浏览器工具?我可以通过nugets得到这个吗?啊,好的,谢谢。。。如果你不介意我问的话,我的电话应该在控制器的“获取”或“发布”部分吗?嗨,只是某个人。。。啊好的。。。上面的用户说我也可以使用@。。。谢谢这个。。。我要两个都试试!谢谢你的帮助!!由于某种原因,我不能给你一个+1的答案。。。系统拒绝我的尝试。。。。但是如果可以的话,我会这么做+1谢谢!
[HttpGet]
public ActionResult CheckChangeTEST(int Int_TEST_ID, int Cur_TEST_ID)
{
    //your code
}