【发布时间】:2019-01-26 19:55:51
【问题描述】:
我想使用 AJAX 将带有一些数据的字符串数组发布到我的控制器。它只是纯文本,我的控制器总是收到一个空参数。我知道我不应该字符串化,因为我不使用模型或视图模型。
我搜索了其他问题,但大多数都涉及表单并使用视图模型属性。
这是我的代码:
控制器
[HttpPost]
public ActionResult FirstAjax(string[] listValues)
{
//TODO
return Json("Reached the controller", JsonRequestBehavior.AllowGet);
}
我添加了 JSON 返回以检查我是否真的在点击控制器并在我的视图上收到消息。
AJAX POST
var listValues = [];
listElements.each(function (index, element) {
listValues.push(element.innerText);
});
var serviceURL = '/Products/FirstAjax';
$.ajax({
type: "POST",
url: serviceURL,
data: listValues,
success: successFunc,
error: errorFunc
});
function successFunc(data, status) {
alert(data);
}
function errorFunc() {
alert('error');
}
由于我的列表可以通过拖放进行排序,因此listValues 将按单击按钮时的顺序填充<li> 项目的文本值。
查看
<div class="demo">
<ul id="sortable">
<li class="ui-state-default">Cat</li>
<li class="ui-state-default">Dog</li>
<li class="ui-state-default">Tiger</li>
</ul>
<button type="button" onclick="display_array();">Ajax Post!</button>
</div><!-- End demo -->
【问题讨论】:
-
在你的 ajax 中,对于你的数据,试试这个 - “data : {listValues: listValues}”。大括号中的第一个参数是控制器中的参数,第二个是您的 javascript 数组。
-
感谢@Daniaal,成功了!
-
我应该把它作为答案!哦,很高兴它起作用了朋友。
标签: c# ajax asp.net-mvc