连接下拉列表以在控制器中运行函数



所以是的...我一直在寻找有关连接下拉列表的信息,以便它在控制器中运行 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) {
    }); 
});

在编辑控制器中...我在帖子和获取部分中都厌倦了这部分,因为帖子没有说明您应该在控制器中添加它的位置:

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;
}

对我来说,什么都没有发生...我尝试查看断点,但它们永远不会转到控制器。我再次将其放在编辑控件下的"发布"和"获取"部分中,因为我希望当用户编辑更改下拉列表中的值时运行它。任何人都可以分享这里发生的事情的想法吗?

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

$.getJSON("TEST_REQUESTController/CheckCTEST" ...

应该是

$.getJSON("TEST_REQUEST/CheckChangeTEST" ...

同样在您的操作中,您可以使用 Get 属性装饰器修饰操作:

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

最新更新