我无法在CSHTML页面中调用函数。
在我的cshtml页面脚本中:
<script type="text/javascript" >
//var sLoggedInUser = <%# GetSession_LoggedInIdUser() %>;
$(document).ready(function () {
alert("dom");
var sLoggedInUser = PageMethods.GetSession_LoggedInUserName();
alert(sLoggedInUser);
});
function btnClick() {
alert("btn click");
}
</script>
dom被警告,按钮点击功能运行良好,但没有获得sLoggedInUser的值。 在我的cs页面中:
protected string GetSession_LoggedInUserName()
{
SessionConfiguration Obj_Configuration = (SessionConfiguration)Session["Configuration"];
return Obj_Configuration.LoggedInUserName;
}
我也尝试使用:var sLoggedInUser = <%= PageMethods.GetSession_LoggedInUserName() %>
// var sLoggedInUser = GetSession_LoggedInUserName()
答案 0 :(得分:2)
FileFilter docx = new FileNameExtensionFilter("MS Word file(.docx)", "docx");
FileFilter doc = new FileNameExtensionFilter("MS Word file(.doc)", "doc");
FileFilter pdf = new FileNameExtensionFilter("Pdf file(.pdf)", "pdf");
chooser.addChoosableFileFilter(docx);
chooser.addChoosableFileFilter(doc);
chooser.addChoosableFileFilter(pdf);
chooser.setFileFilter(docx);
chooser.setAcceptAllFileFilterUsed(false);
int ret = this.chooseLeft.showOpenDialog(chooserFrame);
if(ret == JFileChooser.APPROVE_OPTION){
try{
File leftFile = this.chooseLeft.getSelectedFile();
leftfileName = leftFile.getName().toLowerCase();
}catch(Exception e){
e.printStackTrace();
}
将无效,因为您无法直接从javascript调用服务器端方法。
var sLoggedInUser = PageMethods.GetSession_LoggedInUserName();
更接近,但会输出像
这样的javascriptvar sLoggedInUser = <%= PageMethods.GetSession_LoggedInUserName() %>
但是这不是有效的javascript,因为字符串没有用引号括起来。但是,你不能只依靠
var sLoggedInUser = John Smith
因为你可能有一个像Paddy O'Brien这样名字的用户,它会在名称中用撇号来终止字符串(并且切换到单引号并不是真的更安全)。您可能还需要担心其他字符,因此您应该使用函数将字符串转换为Json。我不确定那是什么因为我习惯使用Razor和辅助函数,但是如果你可以访问帮助器那么它就像是
var sLoggedInUser = '<%= PageMethods.GetSession_LoggedInUserName() %>'
答案 1 :(得分:0)
声明你的函数public static而不是protected
public static string GetSession_LoggedInUserName()
{
SessionConfiguration Obj_Configuration = (SessionConfiguration)Session["Configuration"];
return Obj_Configuration.LoggedInUserName;
}
并像这样调用cshtml
<script type="text/javascript" >
$(document).ready(function () {
var sLoggedInUser = '@PageMethods.GetSession_LoggedInUserName()'
alert(sLoggedInUser);
});
</script>
答案 2 :(得分:0)
方法应该是这样的,static
和WebMethod
[WebMethod]
public static string GetSession_LoggedInUserName()
{
...
}