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