有没有办法从MVC应用程序直接访问PopUps的网页?

时间:2014-02-20 20:51:28

标签: javascript jquery html ajax asp.net-mvc

我所拥有的网站是用.NET MVC编写的。此站点在视图中有一个页脚,其中一些链接在单击时会弹出一个窗口。弹出窗口使用javascript和ajax完成。所有弹出窗口都可以正常工作。

我所追求的是一种通过URL直接访问弹出窗口中常见问题页面的方法。当我尝试通过URL“http://www.mysite.com/faq”直接访问该页面时,我找不到页面。我想以弹出窗口或完整的网页访问该页面,其中包含以下内容:

http://www.mysite.com/faq

页脚中的代码如下:

<a href="#" data-link="faqs">FAQs</a><span>|</span>

<script type="text/javascript">

$(function () {
    $("div.Footer a").click(showPopUp);
    $("a#close-button").click(hidePopUp);
});

function showPopUp(e) {
    e.preventDefault();
    var link = $(e.target).data("link");
    loadHtml(link);
}

function loadHtml(link) {
    if (!$.isShowingStaticContent) {
        $.isShowingStaticContent = true;
        $.ajax({
            type: "POST",
            cache: true,
            url: '/home/' + link,
            success: function (data, textStatus, jqXHR) {
                $("body").prepend(jqXHR.responseText).find("#close-button").click(hidePopUp);
            },
            error: function(){$.isShowingStaticContent = false; }
        });
    }
}

function hidePopUp(e) {
    e.preventDefault();
    $("div:first").remove();
    $.isShowingStaticContent = false;
}  

1 个答案:

答案 0 :(得分:0)

FAQ页面的路径实际上是site.com/home/faq,因为faq操作在你的家庭控制器中(至少看看你的ajax调用它的样子)。如果您希望能够访问site.com/faq,您需要将faq操作移动到它自己的控制器,或者在App_Start / RouteConfig.cs中编辑路由