1
@{
    Layout = null;
    string root = Server.MapPath("~");
    string path = @"Content\galleries\galleries\";
    DirectoryInfo Dir = new DirectoryInfo(root + path + (string)ViewData["Name"]);
    FileInfo[] FileList = Dir.GetFiles("*.jpg");
    string response = "";
}

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <script type="text/javascript">
        jQuery(function ($) {

            var array = new Array();
            var galleryname = '@ViewData["Name"]';

            @for (int i = 0; i < FileList.Length; i++)
            {
                string s = @"
                var path = '../Content/galleries/galleries/" + @ViewData["Name"] + @"/" + @FileList[i].Name + @"';
                var thumbpath = '../Content/galleries/galleries/" + @ViewData["Name"] + @"/thumbs/" + @FileList[i].Name + @"';
                array[" + i.ToString() + @"] =
                    {
                        image: path,
                        title: '" + @ViewData["Name"] + @"',
                        thumb: thumbpath,
                        url: path
                    };";
                response += s;
            }
            @response

这是我的代码。我想用 asp.net 动态编写一些 javascript 代码。当我使用 @response 打印字符串 'response' 时,在页面源代码中我可以看到所有 ' 字符都更改为 & #39; . 那么所有的路径都是坏的。我还尝试在循环中使用 Response.Write(s),并且 ' 字符没有改变,但是生成的代码被放置在页面源代码的最开头,在 doctype 之前,当然,没有任何效果。

如何解决这些问题?或者至少其中一个;)?还是有其他方法?

4

1 回答 1

2

指示输出原始文本:

@Html.Raw(response)
于 2013-05-25T18:49:19.303 回答