【问题标题】:Load html into asp mvc through jQuery通过jQuery将html加载到asp mvc中
【发布时间】:2013-09-09 12:53:03
【问题描述】:

以下代码在 ASP 中运行良好:

// loads the video/presentation/pdf into the central div
        $(document).ready(function () {
            $(".video, .pdfdoc, .presentation").click(function (е) {
                е.preventDefault();
                var url = this.href;
                if ($(this).hasClass("video")) {
                    $(".onCenterBig").html('<video width="800" height="500" controls><source src="' + url + '" type="video/mp4" /></video>');
                }
                else if ($(this).hasClass("pdfdoc")) {
                    $(".onCenterBig").html('<object data="' + url + '" type="application/pdf" width="880" height="620">alt : <a href="' + url + '">test.pdf</a></object>');
                }
                else {
                    $(".onCenterBig").html('<h2>PRESENTATION</h2>');
                }
            });
        });

但我不得不将项目转移到 ASP-MVC3,我唯一改变的是文件的路径:

...<source src="/Content/media/' + url + '" type="video/mp4" /></video>');

'<object data="/Content/media/' + url + '" type="application/pdf" width="880" height="620">alt : <a href=/Content/media/' + url + '"...

我认为问题出在文件路径上,但事实并非如此,因为我使用相同的方式在另一个地方(带有图像)输入 url,它工作正常。

奇怪的是,即使是第 3 个选择,在点击时我只是写 &lt;h2&gt;PRESENTATION&lt;/h2&gt;,也不能正常工作。 所以我认为有一种输入 HTML 代码的方式,因为 ASP 和 ASP-MVC 不同。

为了将 HTML 从字符串加载到页面中,我正在使用 @Html.Raw(System.Web.HttpUtility.HtmlDecode(@ViewBag.MediaWindow)) 的项目的其他位置,但我不确定使用 @Html.Raw....HtmlDecode.... 是否会有所帮助。而且我真的不知道如何在 JS 代码中滥用它。当我检查浏览器的控制台时 - 我没有收到任何错误或任何可疑的东西。

那么,有什么想法可以让 HTML 加载吗?

【问题讨论】:

  • 由于上个版本也不起作用,这似乎是js而不是mvc的问题。如果您签入 Google Chrome js 控制台,您会收到错误消息吗?如果在js代码中下断点,是不是就到那里了?
  • 我猜你的href 值有问题。当您使用开发人员工具检查此内容时,您可以点击链接吗?
  • 检查控制台是否有错误并进行一些调试。确保 JQuery 完全正常工作,并且您甚至正在输入该代码部分。
  • 对不起,忘了说我在浏览器的控制台中没有收到任何错误。我什至检查了 FireBug(听说它是一个很好的工具)。
  • 你应该没有问题。确保进行测试以查看 jQuery 是否已正确加载并在应用程序的此级别运行,即:$(document).ready(function() { alert("yay"); });

标签: jquery asp.net asp.net-mvc asp.net-mvc-3


【解决方案1】:

你的 js 脚本在哪里?应该没有错...我刚刚测试了这个:

HTML

<div id="test">Test</div>

JS

<script type="text/javascript">
    $("#test").click(function () {
        $("#test").html('<div style="width: 200px; height: 200px; background-color: red; color: white;">test</div>');
    });
</script>

也许尝试升级您的 jQ,尽管我从未听说过任何框架(如 ASP/MVC)存在版本问题。

也许尝试删除 $(document).ready() 闭包和/或在 jQ 中使用 .on() 绑定函数而不是 .click()

编辑:我知道这更多的是评论,但空间不足:P

【讨论】:

  • 我的 JS 在头脑中。就像在旧的 ASP 项目中一样。
  • 扔到页面底部
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-23
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多