在MVC中使用Ajax获取多个参数时遇到问题。我有两个需要输入的字段。用户名和CommentText的输入字段。
我在ajax的url部分定义了这些参数。当我只传递一个参数时它工作正常(当单独尝试时两者都适用),但是一旦我尝试两个参数都不起作用。
Ajax功能:
$(function () {
$("#button").click(function () {
$.ajax({
type: "GET",
contentType: "application/json; charset=utf8",
url: "Home/AddComment?CommentText=" + $("#CommentText").val() + "&Username=" + $("Username").val(),
dataType: "json",
success: function (Comment) {
//some function
},
error: function (xhr, err) {
//some code
}
});
});
});
有什么想法吗?我是否可以将参数传递给"数据"代替?
修改 * 这是应该捕获这些参数的控制器。 *
public JsonResult AddComment(string commentText, string username)
{
Comment c = new Comment() { CommentText = commentText, Username = username };
CommentRepository.Instance.AddComment(c);
return Json(GetComments(), JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:2)
您可以使用以下内容:
<强>的Ajax 强>
$.ajax({
type: 'GET',
url: 'Home/AddComment',
data: { CommentText: $("#CommentText").val(),
Username: $("#Username").val() },
cache: false,
success: function (result) {
desc = result;
}
});
然后在控制器:
中public string AddComment(string CommentText, string Username)
{
//your code here
}
希望这会对你有所帮助。
答案 1 :(得分:0)
$(function () {
$("#button").click(function () {
$.ajax({
type: "GET",
contentType: "application/json; charset=utf8",
url: "Home/AddComment",
data: '{"CommentText":"' + $("#CommentText").val() + '", "Username":"' + $("Username").val() + '"}'
dataType: "json",
success: function (Comment) {
//some function
},
error: function (xhr, err) {
//some code
}
});
});
});
答案 2 :(得分:0)
您可以将所有变量/参数移动到一个数组中,然后您可以尝试以下操作。 然后你可以用C#....
读取这些数组值var val1=$("#componentName1").val();
var val2=$("#componentName2").val();
...
var parameterArray={val1,val2,val3....}
$.ajax({
type: "GET",
contentType: "application/json; charset=utf8",
url: "Home/AddComment",
data: parameterArray,
dataType: "json",
success: function (Comment) {
//some function
},
error: function (xhr, err) {
//some code
}
});