我使用AJAX从视图向控制器发送数据。当AJAX函数在控制器端执行时,我只接收空值。请告诉我我的错误。
public void save_bookmark([Bind(Include="name,tags,link,email,admin,start_bookmark[],end_bookmark[]")]bookmarking obj_book)
{
bookmark obj = new bookmark();
start_bookmark start_obj = new start_bookmark();
end_bookmark end_obj = new end_bookmark();
obj.name = obj_book.name;
obj.link = obj_book.link;
obj.tags = obj_book.tags;
obj.user = obj_book.admin;
obj.check = true;
db.bookmarks.Add(obj);
db.SaveChanges();
/*foreach(int element in obj_book.start_bookmark)
{
start_obj.bookmarkid=int.Parse(obj);
start_obj.start=
}*/
}
$.ajax({
url: '@Url.Action("save_bookmark", "chopaal")',
type: "POST",
contentType: "text/html",
data: { name:'#bookmark_name', tags:'#bookmark_tags', email:'#bookmark_email', link:'#link', start_bookmark:'#start', end_bookmark:'#end'},
success: function () {
window.alert('success!!');
}
});
答案 0 :(得分:1)
首先您需要在变量中获取输入字段的值。 像这样
var var1= $("[id$=bookmark_name]").val();
var var2= $("[id$=bookmark_tags]").val();
var var3= $("[id$=bookmark_email]").val();
var var4= $("[id$=link]").val();
var var5 = $("[id$=start]").val();
var var6= $("[id$=end]").val();
$.ajax({
type: 'POST',
url: "/ControllerName/save_bookmark",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ bookmark_name: var1, bookmark_tags: var2,bookmark_email: var3, link: var4, start: var5, end: var6 }),
success: function (data) {
alert("sucess");
},
async: false
});
现在你的控制器应该喜欢这个
[HttpPost]
public void save_bookmark(string bookmark_name, string bookmark_tags, string bookmark_email, string link, string start, string end)
{
bookmark obj = new bookmark();
//here you can get your data
obj.name = bookmark_name;
obj.tags = bookmark_tags;
.
.
db.bookmarks.Add(obj);
db.SaveChanges();
}
将调试器放入控制器并检查从视图传递的值
然后将其保存到您的数据库中。
让我知道它是否有效或你有什么错误。
祝你好运