【发布时间】:2011-12-14 14:33:04
【问题描述】:
我正在使用从 JavaScript 调用 Web 方法的 VB.Net 页面,这在一周前还可以正常工作,现在由于某种原因无法正常工作。我想知道是否有人能给我任何想法,因为我现在完全迷路了。
首先我的页面会生成一个可以点击的项目列表,执行此操作的行是:
TicketHTML = TicketHTML + "<td><img src='../images/delete.png' Class='imgTicketClose' alt='Delete Task' onclick='DeleteTicket(" + row("id").ToString() + ")' /></td></tr>"
我知道这是有效的,因为当单击该项目时我会弹出一个 javascript 弹出窗口,所以我认为问题不在这里。
现在我的 Javascript:
function DeleteTicket(ticketID)
{
var answer = confirm("Do you really want to delete this task?")
if (answer)
{
PageMethods.DeleteTask(ticketID);
window.location.reload()
}
}
我认为问题出在此处,因为 web 方法似乎从未调用过,并且页面似乎也没有重新加载,但我不明白为什么如果 javascript 显示确认对话框会失败。
为了完整起见,这里是我的 web 方法,虽然我知道这没有被调用,因为我已经分析了数据库。
<System.Web.Services.WebMethod()>
Public Shared Sub DeleteTask(ticketID As Integer)
Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("Blueprint").ToString())
Dim cmd As New SqlCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "spDeleteNonTicketItem"
cmd.Parameters.AddWithValue("@ItemID", ticketID)
cmd.Connection = conn
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
End Sub
那么我在哪里可以看?任何建议将不胜感激。谢谢
编辑:web.config 文件中的任何内容会阻止页面方法执行吗? 我刚刚注意到这种情况发生在一个完全独立的 Web 方法中,并检查了使用 alert() 传递到 javascript 中的整数,它们都是有效的
【问题讨论】:
-
你可以用javascript执行VB函数吗? :O
-
@Shvelo 是的:D 我有这个工作一段时间,但不知道为什么它不再工作了
-
在C#中你需要将你的方法标记为[WebMethod],不了解VB
-
您可能想尝试在您的函数中放置一个断点以确保它没有被调用。如果函数被调用,但在它到达 conn.Open() 函数之前抛出异常,那么观察你的 DB 分析器不会告诉你任何事情。
-
DeleteTask 是否用
属性修饰?它需要从客户端“可访问”。这最近被删除了吗?另外,是否有任何 javascript 错误?
标签: javascript asp.net vb.net