如何调用post-actionresponse,将所选下拉项作为参数从视图中的javascript传递
如何在asp.net、razor、mvc中的视图中调用PostActionResponse,将所选下拉项作为参数传递给javascript 基本上,我相信您可以从下面的代码中看出,我正在尝试完成上述任务,但没有取得多大成功。我应该改变什么才能成功?谢谢如何调用post-actionresponse,将所选下拉项作为参数从视图中的javascript传递,javascript,c#,asp.net,asp.net-mvc,razor,Javascript,C#,Asp.net,Asp.net Mvc,Razor,如何在asp.net、razor、mvc中的视图中调用PostActionResponse,将所选下拉项作为参数传递给javascript 基本上,我相信您可以从下面的代码中看出,我正在尝试完成上述任务,但没有取得多大成功。我应该改变什么才能成功?谢谢 <script type="text/javascript"> $(function() { $("#mydropdown").change(function() { var selectedItem = $(
<script type="text/javascript">
$(function() {
$("#mydropdown").change(function() {
var selectedItem = $(this).val();
$.ajax({
url: '@Url.Action("DoStuff", "MainController")',
type: "Post",
data: { name: selectedItem },
success: function () {
alert('success');
}
});
});
});
到目前为止,更改下拉列表时不会发生任何事情。虽然如果我删除ajax函数,并用警报替换它。此时将显示此情况下的警报
此时,actionresult和controller看起来似乎都不存在于项目中(红色),即使它们都存在且都按规定命名。
c#似乎表明动作或控制器实际上都不存在,给出了错误“无法解析动作”或“无法解析控制器”您必须将参数名称更改为SelectedItem,以匹配动作方法的参数,并在传递之前将json数据字符串化
JSON.stringify({ SelectedItem :selectedItem })
请参阅以供参考。
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
</head>
<body>
<select id="mydropdown">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
</select>
<script type="text/javascript">
$(function() {
$("#mydropdown").change(function() {
var selectedItem = $(this).val();
$.ajax({
url: '@Url.Action("DoStuff", "MainController")',
type: "Post",
data: { name: selectedItem },
success: function () {
alert('success');
}
});
});
});
</script>
</body>
</html>
[HttpPost]
public ActionResult DoStuff(string name)
{
CIModel CIModellList = CILHelper.ImportFunc(name);
return View(CIModellList);
}
A.
B
C
D
$(函数(){
$(“#mydropdown”).change(函数(){
var selectedItem=$(this.val();
$.ajax({
url:'@url.Action(“DoStuff”,“MainController”),
类型:“Post”,
数据:{name:selectedItem},
成功:函数(){
警惕(“成功”);
}
});
});
});
[HttpPost]
公共操作结果DoStuff(字符串名称)
{
CIModel CIModellList=CILHelper.ImportFunc(名称);
返回视图(CIModellList);
}
如果您确定“什么也没发生”,则您的$.ajax
调用没有失败回调,因此您需要进行调试以查看它是否失败。
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
</head>
<body>
<select id="mydropdown">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
</select>
<script type="text/javascript">
$(function() {
$("#mydropdown").change(function() {
var selectedItem = $(this).val();
$.ajax({
url: '@Url.Action("DoStuff", "MainController")',
type: "Post",
data: { name: selectedItem },
success: function () {
alert('success');
}
});
});
});
</script>
</body>
</html>
[HttpPost]
public ActionResult DoStuff(string name)
{
CIModel CIModellList = CILHelper.ImportFunc(name);
return View(CIModellList);
}