Javascript 连接dropdownlist以运行控制器中的功能
所以是的。。。我一直在搜索有关连接dropdownlist的信息,以便它在控制器中使用asp.net mvc工具运行函数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) {
$(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
}