C# 在MVC4中同时执行POST和GET
我试图在单击表中的项目后编辑字段 我向表中的每个对象添加了on-clcik事件,如下所示:C# 在MVC4中同时执行POST和GET,c#,javascript,asp.net-mvc,razor,C#,Javascript,Asp.net Mvc,Razor,我试图在单击表中的项目后编辑字段 我向表中的每个对象添加了on-clcik事件,如下所示: onclick="itemEdit(this) public ActionResult Index(string itemId) { if (itemId != null) { im.loadItem(itemId.ToString()); } else
onclick="itemEdit(this)
public ActionResult Index(string itemId)
{
if (itemId != null)
{
im.loadItem(itemId.ToString());
}
else
{
if (im.lstEditModel.Count == 0)
{
im.loadLists();
}
}
return RedirectToAction("Index");
}
我的javascript函数看起来像:
function itemEdit(e) {
console.log($(e).attr("id"));
var itmId = $(e).attr("id");
$.ajax({
url: '@Url.Action("Index", "Scraping")',
data: {itemId: itmId},
type: 'POST',
success: function(data) {
alert(data);
}
});
}
我在索引方法中所做的是以更详细的方式在页面顶部加载单击的项目,如下所示:
onclick="itemEdit(this)
public ActionResult Index(string itemId)
{
if (itemId != null)
{
im.loadItem(itemId.ToString());
}
else
{
if (im.lstEditModel.Count == 0)
{
im.loadLists();
}
}
return RedirectToAction("Index");
}
我遇到的问题是,每当我单击一个项目时,index方法都会执行两次,从而造成混乱。有什么帮助吗?我没有看到该方法上的
[HttpPost]
标记,但是在该方法的末尾,您正在重定向到另一个索引
操作。。。您通常会返回某种JSON数据,而不是return RedirectToAction(“Index”)代码>。。。此语句将执行您所描述的操作,调用Get操作
发件人:
向浏览器返回HTTP 302响应,这会导致浏览器对指定操作发出GET请求
尝试停止事件冒泡
function itemEdit(e) {
e.stopPropagation();
console.log($(e).attr("id"));
var itmId = $(e).attr("id");
$.ajax({
url: '@Url.Action("Index", "Scraping")',
data: {itemId: itmId},
type: 'POST',
success: function(data) {
alert(data);
}
});
}
请忽略这一点,在添加onClick事件导致浏览器重新加载我的javascript代码时,我错误地忘记了放置href=“#”。我输入了href=“”你在该操作上有[HttpPost]
属性吗?@Jonesy如果没有,他手上会有一个重定向循环。你是如何将其添加到每个项目的?JavaScript事件在对象层次结构中冒泡。所以onclick在单元格上冒泡到行冒泡到表等等。如果onclick在单元格、行和表上,那么每次单击都会触发多次。您能显示表标记以及GET和POST操作方法吗?另外,我认为ajax调用不会找到操作,true。