我在点击表格中的项目后尝试编辑字段。
我在表中的每个对象上添加了一个on clcik事件,如下所示:
onclick="itemEdit(this)
我的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);
}
});
}
我在Index方法中所做的是在页面顶部以更详细的方式加载点击的项目,如下所示:
public ActionResult Index(string itemId)
{
if (itemId != null)
{
im.loadItem(itemId.ToString());
}
else
{
if (im.lstEditModel.Count == 0)
{
im.loadLists();
}
}
return RedirectToAction("Index");
}
我遇到的问题是每当我点击一个项目时,索引方法就会执行两次......从而造成一团糟。有什么帮助吗?
答案 0 :(得分:0)
我在该方法上看不到[HttpPost]
标记,但在方法结束时,您将重定向到另一个Index
操作...通常会返回某种JSON数据而不是return RedirectToAction("Index");
...这个陈述将按照你所描述的那样,调用你的Get Action。
来自MSDN:
返回对浏览器的HTTP 302响应,这会导致浏览器向指定的操作发出GET请求。
答案 1 :(得分:0)
尝试停止事件冒泡。
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);
}
});
}
答案 2 :(得分:0)
请忽略这一点,错误地我忘了把href ="#"添加onClick事件时导致浏览器重新加载我的javascript代码。我输入了href =""