如果我在我的HTML页面中包含一个JavaScript文件,那么我的JavaScript文件中声明的变量是否也在<script />我的HTML页面的标签中有作用域?例如,在我包含的JS文件中,我声明了一个变量:
var myVar = "test";
Run Code Online (Sandbox Code Playgroud)
然后在我的HTML页面中,这将产生什么(如果它在我的include脚本标记之后)?
alert(myVar);
Run Code Online (Sandbox Code Playgroud) 我想和大家分享我今天学到的东西。我的问题是:
您可以将 JSON 对象从 JavaScript 代码传递到 .NET 页面方法吗?例如:
var task = {
Title: $("#titlenew input", $(newTaskRow)).val(),
StartDate: $("#startnew input", $(newTaskRow)).val(),
EndDate: $("#endnew input", $(newTaskRow)).val(),
EstimatedHours: $("#esthrsnew input", $(newTaskRow)).val(),
PredecessorsOutlineNumbers: $("#depnew input", $(newTaskRow)).val(),
OutlineNumber: $("#ordernew", $(newTaskRow)).text()
};
PageMethods.AddTask(task, saveNewTaskCompleted, saveNewTaskFailed);
Run Code Online (Sandbox Code Playgroud)
如果可以,我的 Web 方法应该接受什么类型的 .NET 对象?
我发现是的,你可以将一个 JSON 对象传递给一个 Page 方法,它作为一个字典(字符串,字符串)出现。所以我的 web 方法签名是这样的:
<System.Web.Services.WebMethod()> _
Public Shared Sub AddTask(ByVal taskJson As Dictionary(Of String, String))
Dim oTask As New Task()
oTask.Title = taskJson("Title")
' all other accesses to the JSON object here
End …Run Code Online (Sandbox Code Playgroud) 我有一个ASP .NET Web应用程序,它使用表单身份验证.我们称这个应用为"Foo".我正在创建另一个名为"Bar"的ASP .NET应用程序.
我想要发生的是用户登录到Foo,然后单击一个链接,将它们带到Bar应用程序中的页面.Bar应用程序不应要求Foo用户再次登录.Foo应用程序应该将安全票证传递给Bar应用程序,然后用户可以在Bar应用程序中进行他/她的业务.
我还想限制对Bar应用的访问.因此,如果用户在未首先登录的情况下尝试访问Bar应用程序,则会将其重定向到Foo登录页面.
这可能吗?如果是这样,我该如何实现呢?
我正在创建一个批处理脚本,它将获取应用程序代码的最新版本,然后使用msbuild构建它.一切都有效,直到msbuild部分.这是运行msbuild的行:
C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe "code/Solution.sln" /p:Configuration="Debug"
Run Code Online (Sandbox Code Playgroud)
并且整个地方都出现了错误 - 所有错误都表示如下:
C:\code\project1\codefile1.vb(882): error BC30009: Reference required to assembly 'System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' containing the implemented interface 'System.Xml.Serialization.IXmlSerializable'. Add one to your project.
Run Code Online (Sandbox Code Playgroud)
Visual Studio 2008中的所有内容都没有错误地构建.这里发生了什么?
我怎么摆脱这个?

我想要摆脱它的原因是,每隔一段时间,我会将鼠标向下移动到屏幕的底部,当我将鼠标移到此区域时,鼠标一直跳到屏幕的左上角.真的很烦人.我实际上必须让我的鼠标绕过这个我从未使用的"功能",并且可能只是增加VS引入的开销.所以,任何建议都会有所帮助.
我有一个系统,允许用户将HTML保留字符输入文本区域,然后将其发布到我的应用程序.然后将该信息保存到数据库中以供以后检索和显示.警报(应该)在你的头脑中消失.我需要确保避免XSS攻击,因为我会在应用程序的其他位置显示此数据.我看到以下是我的选择:
我可以在进入数据库的过程中对数据进行HTML编码,因此数据库中不会输入任何HTML字符.
< > &等.每当我需要在网页上显示数据时,我都可以对数据进行HTML编码.
我可以使用经过充分测试的第三方库来删除潜在危险的HTML并获取安全的HTML片段来保存数据库,而不是HTML编码.
<script>或<object>标记,它就不会成功,我们会因此获得支持电话和电子邮件.我的问题是:什么是最好的选择,或者如果有另一种方法可以解决这个问题,它是什么?
在我的Web应用程序中,用户可以将文本发布到Feed,文本可能包含URL.我的代码扫描URL并替换它们指向URL的锚标签.我想更改此设置,以便我的代码可以检测URL是否指向图像,如果是,则在锚标记内呈现图像标记,而不仅仅是URL文本.
我可以在服务器端代码上执行此操作,方法是向URL发送一个快速的"HEAD"请求,以查看Content-Type在响应上的内容,并且这可以正常工作.但是,由于显而易见的原因,它不能很好地扩展.
如果我能将这个逻辑推到客户端的浏览器上,那会更好.我想使用JavaScript + jQuery将'HEAD'请求发送到指定的URL,并从响应中读取Content-Type标头.
我知道跨域请求是个问题.我可以以某种方式使用JSONP吗?我有什么选择?
我对我的问题得到了一些很好的答案,但我想用大胆的字母指出一些东西.正如亚当在评论中指出的那样,这是一种安全隐患.如果您可以保证图像的URL都来自可信域,那么您最好使用此解决方案.但是,在我的场景中,用户可以输入他们想要的任何URL.这意味着他们可以创建自己的网站,需要基本身份验证,然后在jQuery的运行设置src属性所创建的图像上,用户会看到一个用户名/密码对话框,这显然是一个巨大的风险.
我正在尝试在我的网站上实现视图跟踪Web服务.我正在使用JavaScript,因为我想从我的跟踪视图中排除任何搜索机器人.问题是当我尝试使用jQuery发布到我创建的Web服务时,我收到了"未知的Web方法"错误.
$(document).ready(function() {
$.ajax({
type: "POST",
url: '<%=ResolveUrl("~/WS/ItemViewTrackingService.asmx/TrackItemView") %>',
data: "{'itemType': 'thread', 'itemId':<%=mThread.ThreadID %>}",
contentType: "application/json; charset=utf-8"
});
});
Run Code Online (Sandbox Code Playgroud)
这是Web服务.
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class ItemViewTrackingService
Inherits System.Web.Services.WebService
<WebMethod(EnableSession:=True)> _
Public Shared Sub TrackItemView(ByVal itemType As String, ByVal itemId As Int32)
If itemType.Equals("column", StringComparison.OrdinalIgnoreCase) Then
Services.ViewTrackingService.TrackColumnView(itemId)
ElseIf itemType.Equals("thread", StringComparison.OrdinalIgnoreCase) Then
Services.ViewTrackingService.TrackThreadView(itemId)
End If
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
该错误是ASP .NET错误:未知的Web方法TrackItemView.参数名称:methodName
我已经完成了数百次(看似),但我看不出我错过了什么.我确定这是小事......
我有一个通过引用接受String的函数:
Function Foo(ByRef input As String)
Run Code Online (Sandbox Code Playgroud)
如果我这样称呼它:
Foo(Nothing)
Run Code Online (Sandbox Code Playgroud)
我想要它做一些不同的事情,如果我这样称呼它:
Dim myString As String = Nothing
Foo(myString)
Run Code Online (Sandbox Code Playgroud)
是否有可能在VB .NET中调用方法的方式中检测到这种差异?
编辑
为了澄清为什么我想要这样做,我有两种方法:
Function Foo()
Foo(Nothing)
End Function
Function Foo(ByRef input As String)
'wicked awesome logic here, hopefully
End Function
Run Code Online (Sandbox Code Playgroud)
所有逻辑都在第二个重载中,但是如果Nothing传递给函数,我想执行不同的逻辑分支,而不是传入包含 的变量Nothing.
我有一个ASP TextBox,TextMode设置为MultiLine.当用户试图将换行符放入文本时,我遇到了保留vbCrLf字符的问题.当按下页面上的按钮时,我从控件中获取文本,使用String.Trim修剪它,并将该值赋给对象的String属性(该属性又将其赋值给私有内部String变量)在对象上).然后,该对象从私有内部变量获取值,并使用存储过程调用将其抛出到数据库中(它放入的SP参数是nvarchar(4000)).
ASPX页面:
<asp:UpdatePanel ID="UpdatePanel2" runat="server" RenderMode="Inline" UpdateMode="Conditional"
ChildrenAsTriggers="true">
<ContentTemplate>
<!-- some other controls and things -->
<asp:TextBox TextMode="MultiLine" runat="server" ID="txtComments" Width="100%" Height="60px" CssClass="TDTextArea" Style="border: 0px;" MaxLength="2000" />
<!-- some other controls and things -->
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
代码背后:
ProjectRequest.StatusComments = txtComments.Text.Trim
Run Code Online (Sandbox Code Playgroud)
对象属性:
Protected mStatusComments As String = String.Empty
Property StatusComments() As String
Get
Return mStatusComments.Trim
End Get
Set(ByVal Value As String)
mStatusComments = Value
End Set
End Property
Run Code Online (Sandbox Code Playgroud)
存储过程调用:
Common.RunSP(mDBConnStr, "ProjectStatusUpdate", _
Common.MP("@UID", SqlDbType.NVarChar, 40, mUID), _
Common.MP("@ProjID", SqlDbType.VarChar, 40, …Run Code Online (Sandbox Code Playgroud) asp.net ×4
javascript ×3
jquery ×2
ajax ×1
asmx ×1
asp.net-ajax ×1
html ×1
html-encode ×1
json ×1
msbuild ×1
multiline ×1
newline ×1
nothing ×1
null ×1
textbox ×1
vb.net ×1
web-services ×1