簡體   English   中英

通過jquery調用MVC4控制器來更新部分視圖

[英]Update partial view by calling MVC4 controller via jquery

我有一個帶有側邊欄菜單的頁面。 在單擊側邊欄菜單時,我展開jstree。 單擊此樹的任何節點后,應重新加載主頁上的部分頁面。 但是,這似乎沒有發生。

Simplified MainPage.html


<body class="claro">
    <div id="header">
            <div id="logindisplay">
                @Html.Partial("_LogOnPartial")
            </div>
     </div>
     <div id="menucontainer2">
        @Html.Partial("_SideLayout")
    </div>
    <div id="main">
            @RenderBody()
    </div>
</body>

我以jstree視圖的形式創建側邊欄布局(可以正常渲染),並等待其使用以單擊樹節點。 即。

SideBarLayout.html

<div id="divtree">
    <ul id="tree">
        <li>
           Manage Profile              
        </li>
        <li ><a>Settings</a>
            <ul>
                <li><a>Configuration Settings</a>
                    <ul>
                        <li><a>Customer Setup</a></li>
                        <li><a>Job Setup</a></li>
                    </ul>
                </li>
            </ul>
        </li>

    </ul>
</div>

script type="text/javascript">
    $(function () {
        $("#divtree").jstree();

        $("#divtree").bind(
        "select_node.jstree", function (evt, data) {
            debugger;
            var url = '@Url.Action("Index", "Order", new{ Area = "OrderModule"})'; -----> is this correct way to call the MVC 4 Controller ? 
            console.log(url);
            $.post(url, function (data, status) {
                alert("Data: " );
            });
        }
);
    });
</script>

1 . 如您所見,無論單擊樹的哪個節點,我都將創建相同的url 一旦我可以在MainPage.html上更新部分視圖,就可以解決這個問題。

2 .

_LogOnPartial可以正常工作,並且能夠正確更新主頁的部分視圖。 它只包含這樣的東西

 @Html.ActionLink("Log Off", "LogOff", "Account")

但是我無法操縱jstree更新部分視圖。 誰能用正確的jquery命令幫助我,以調用MVC 4控制器,以便更新我的頁面?

**EDIT**

現在,我可以連接將數據發布到服務器了(我的警報說成功)。 但是仍然沒有呈現我在主頁中的部分視圖

正確的Ajax呼叫:

    $.ajax({
        url: '@Url.Action("Index", "DpcmOrder", new { area = "AmethystWorkestraModule" })',
        type: 'POST',
        cache: false,
        async: false,
        data: $('form').serialize(),
        success: function (data) {
            //your ajax data    
            alert('success');
            $('#main').html(data);
        },
        error: function (e) {
            alert('fail');
            console.log(e);
        }
    });
 $.ajax({
        url: '/Index/Order',
        type: 'GET',
        cache: false,
        async: false,         
        data: {Area : "OrderModule"},
        success: function (data) {
         //your ajax data    
         }
     });

暫無
暫無

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

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