簡體   English   中英

如何在ASP.NET MVC 4中刷新div內容而不進行頁面刷新和不使用javascript?

[英]How to refresh a div content in ASP.NET MVC 4 without page refresh and without using javascript?

Noob需要幫助)我有一個根文件夾的文件列表,我想使其成為一種文件瀏覽器,但我不想每次都刷新頁面。 這是我嘗試使其可刷新的局部視圖的代碼:

<div class="createdb">
@{
    string x = null;
    string[] list = Directory.GetDirectories(HostingEnvironment.ApplicationPhysicalPath);
    foreach(var item in list)
    {
        x = item.Replace(HostingEnvironment.ApplicationPhysicalPath, "");
        <div class="item"><img src="~/Img/fld.png" class="icon"/>@x</div>  
    }  

    string[] list2 = Directory.GetFiles(HostingEnvironment.ApplicationPhysicalPath);
    foreach(var item in list2)
    {
        x = item.Replace(HostingEnvironment.ApplicationPhysicalPath, "");
        <a href="@Html.Action("Refresh");"><div class="item"><img src="~/Img/file.png" class="icon"/>@x</div></a>
    }
}
</div>

控制器ActionResult僅返回視圖。 我不知道如何將另一個ActionResult鏈接到現有視圖,只是刷新它的內容。 謝謝

您肯定需要JavaScript或JQuery或AJAX調用才能獲取此信息。因為它是在客戶端(Web瀏覽器)完成的。

您需要了解,一旦HTML在客戶端的瀏覽器中,它就是“死的”。 除非客戶端執行重新加載同一頁面(在查詢字符串或表單中使用相同或新的參數)或加載新頁面的操作,否則任何更改都無法更改瀏覽器中的HTML。

除非您使用某種客戶端腳本,例如javascript。

因此,如果要避免頁面加載,應使用javascript(使用AJAX)。

如果要避免使用javscript,則需要頁面加載/重新加載。

非常感謝你。 我已經知道在這種情況下我無法避免使用js。 我就是這樣的:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
    $(document).on('click','.createdb a .item', function(e) {
        e.preventDefault();
        var link = $(this).text();
        var p = $('.hid').text();
        $.ajax({
            url: '@Url.Action("DBView")',
            type: 'post',
            cache: false,
            async: true,
            data: { id: link, path: p },
            success: function (result) {
                $('.mainarea').html(result);
            }
        });
    });

控制器看起來像這樣:

[HttpPost]
        public PartialViewResult DBView(string id, string path)
        {
            FileManager FM = new FileManager();
            FM.Path = path;
            if (id != "...")
            {
                FM.Path =  path + id + "\\";
            }
            else
            {
                FM.Path = FM.Path.Remove(FM.Path.LastIndexOf("\\"), 1);
                FM.Path = FM.Path.Remove(FM.Path.LastIndexOf("\\") + 1, y - x - 1);
            }
            return PartialView("CreateDB", FM);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM