将字符串参数传递给javascript函数 - javascript

我多次测试以下代码。它工作正常,并且得到“ return photoMenu_sb.ToString();”的结果。一旦我删除了字符串参数photoFileName。但是当我声明并尝试传递字符串photoFileName时,没有任何反应。为什么?

我认为问题出在声明字符串photoFileName并将其传递给javascript函数,但由于没有任何错误,我无法确定问题所在。某处缺少报价吗?

[WebMethod]
public static string LoadPhotosPopup(int offset, int fetch, string IDuserInput)
{
        StringBuilder photosPopup_sb = new StringBuilder();           
        var photosPopup_query = db.Query("SELECT IDphoto], [photoFileName] FROM [photos] WHERE ([IDuser] = @0 AND [photoPublished] = 'True')  ORDER BY [photoDate] DESC OFFSET @1 ROWS FETCH NEXT @2 ROWS ONLY", IDuserInput, offset, fetch);
        foreach (var item in photosPopup_query)
        {
            var IDphoto = item.IDphoto;
            var photoFileName = item.photoFileName;
            photosPopup_sb.Append("<img src=\"Images/Design/openmenu.png\" onclick=\"photoMenu(" + IDphoto + ", '" + photoFileName + "') \" />");                         
         }           
        return photosPopup_sb.ToString();
    }

的JavaScript

function photoMenu(IDphoto, photoFileName) {   
$.ajax({
    type: "POST",
    url: "UserControls/photosFunctions.aspx/photoMenu",
    data: "{ IDphoto: " + IDphoto + "}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        $("#CommentsMenu" + IDphoto).html(data.d);
    }
})

}

[WebMethod]
            {   StringBuilder photoMenu_sb = new StringBuilder();                        
        photoMenu_sb.Append("<label>Testing </label>");
        return photoMenu_sb.ToString();
    }

更新
由于公共静态字符串photoMenu(int IDphoto,字符串photoFileName)
然后需要2个参数

 data: "{ IDphoto: " + IDphoto + "}", in the javascript function should be 
 data: "{ IDphoto: " + IDphoto + ", photoFileName: '" + photoFileName + "'}",

参考方案

尝试创建一个包含javascript函数字符串的字符串变量:

var img = String.Format("<img src='Images/Design/openmenu.png' onclick='photoMenu({0},'{1}')' />", item.IDphoto, item.photoFileName);
photosPopup_sb.Append(img);  

在您的JavaScript中,还需要为photofileName参数设置json数据属性:

function photoMenu(IDphoto, photoFileName) {   
    $.ajax({
        type: "POST",
        url: "UserControls/photosFunctions.aspx/photoMenu",
        data: "{ IDphoto: " + IDphoto + ", photoFileName: '" + photoFileName + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
           $("#CommentsMenu" + IDphoto).html(data.d);
        }
    }); 
}

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

在JavaScript函数中转义引号 - javascript

我正在尝试将变量传递给javascript函数。根据用户的选择,它可以是文本或图像。这里已经讨论了类似的问题,但我无法解决。在php中,我这样编码:if ($choice == 1) { $img = '<img src = "../folder/'.$_SESSION["img"].'�…

如何在没有for循环的情况下在Javascript中使用Django模板标签 - javascript

我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要....下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…

使用JS和PHP更改弹出窗口背景图像 - javascript

我有一个JS函数:function zoom(now) { document.getElementById("popup").style.display = "block"; document.getElementById("photos").style.backgroundImage = …

打印二维阵列 - javascript

我正在尝试打印子元素。在this example之后。怎么做?。$myarray = array("DO"=>array('IDEAS','BRANDS','CREATIVE','CAMPAIGNS'), "JOCKEY"=>a…