http://localhost:53435/Blog/BlogIndex?title=blog+title&seo=seo&content=%3Cp%3Econtent%3C%2Fp%3E%0D%0A
上面的网址
当我点击保存按钮页面时刷新并且像这样的网址
我不想要它我怎么能解决它?
我的控制器代码
try
{
Blog addModel = new Blog();
content = content.Replace("<p>", "").Replace("</p>", "");
addModel.BlogPictureURL = pictureData;
addModel.BlogContent = content;
addModel.BlogPictureSEO = seo;
addModel.BlogTitle = title;
addModel.BlogDate = DateTime.Today;
addModel.BlogViewCount = 0;
db.Blog.Add(addModel);
db.SaveChanges();
var lastID = db.Blog.OrderByDescending(x => x.ID).Take(1).FirstOrDefault().ID;
foreach (var item in Tags)
{
Tags newTag = new Tags();
newTag.TagsName = item;
newTag.BlogID = lastID;
db.Tags.Add(newTag);
}
db.SaveChanges();
return RedirectToAction("BlogIndex", "Blog");
}
catch
{
return RedirectToAction("Error", "Admin");
}
我的ajax代码
function SaveAllData() {
var blogFile;
var elem = $(".dz-details").find("img");
blogFile = elem[0].getAttribute("alt");
var elemData = $("#tags").val();
elemData = elemData.split(",");
$.ajax({
type: "POST",
url: "/Blog/AddBlog",
datatype: "json",
traditional: true,
data: {
title: $("#title").val(),
seo: $("#seo").val(),
content: CKEDITOR.instances.content.getData(),
Tags: elemData,
pictureData: blogFile
}
});
}
如果我这样做没有ajax帖子就没有问题 但是用ajax做错了什么
答案 0 :(得分:0)
看起来您的表单仍在执行普通表单提交而不是ajax帖子。如果您有一些javascript代码在单击表单的提交按钮时执行ajax提交,但忘记停止默认行为,即提交按钮单击上的表单提交,则会发生这种情况。从您发布的网址看起来,您的表单方法也是一个GET,它通过查询字符串提交数据。
您只需要确保不要让默认行为发生。
以下是将click事件绑定到按钮
的非限制性方法<button type="submit" class="btn btn-primary" style="float:right" id="btnSubmit">
和js代码
function SaveAllData() {
// your existing code for the ajax call
}
$(function(){
$("#btnSubmit").click(function(e){
e.preventDefault(); // This will prevent the default form submit
SaveAllData();
});
});
另外,如果是ajax表单提交,则返回RedirectResult是没有意义的。您可以考虑返回带有url值的json结构以导航到(如果需要)。