【发布时间】:2017-08-18 14:54:31
【问题描述】:
我查看了许多关于 SO 的帖子以了解我的情况,但收效甚微。我正在尝试将数据从 javascript 函数 (DropdownChange()) 发送到 MVC 控制器 Action 方法,作为基于视图上选择的下拉值的参数。这是我的代码:
在 .cshtml 中 //下拉代码 ....其次是 //创建新计划的代码
<a href="@Url.Action("ActionMethod")">
<i class="sth" id="sth" Title="Create"></i>
</a>
在 .JS 文件中,获取下拉更改值的函数
function DropdownChange(){
var Value = parseInt($("#dropDownId").val());
$.ajax({
type: "POST",
url: '@ Url.Action("ActionMethod", "Home")',
contentType: 'application/json; charset=utf-8',
dataType: "json",
data: {data : JSON.Stringify(Value)},
success: function (data) {
alert('success');
},
error: error: function (result){
alert('error');
}
});
这是我的控制器操作方法
[HttpPost]
public ActionResult ActionMethod(string Value)
{
// do something with Value
}
我得到的只是错误警报消息和 JS 运行时错误以及 Value 参数的空值。任何人都可以在这种情况下帮助我。 提前致谢。
【问题讨论】:
-
#dropDownId是什么类型的元素,它的值是多少?此外,您可能应该在 AJAX 请求中发送data: { value: Value } -
请添加js错误信息
-
data: Value应该足够了,我认为 -
只需简单地尝试
data: Value并删除contentType: 'application/json; charset=utf-8',,它应该没有必要。您不是在发送 JSON,也不是在发送字符串,而是在发送一个简单的整数。理想情况下,控制器方法应该接受int,因为通过在客户端上使用parseInt,我可以清楚地看到意图是发送一个int。这将有助于验证输入。 -
什么错误?在您的问题中显示相关信息,包括您的
<select>的 html 以及您如何调用该函数。以及它的data: { Value: $("#dropDownId").val() }并删除contentType: 'application/json; charset=utf-8',(如果值为int,则参数应为int value)
标签: javascript c# jquery ajax asp.net-mvc