Javascript:在MVC3中刷新视图 [英] Javascript : Refresh View in MVC3

查看:81
本文介绍了Javascript:在MVC3中刷新视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





有人能告诉我如何使用javascript在MVC3中重新加载视图。



这是我的场景:



在View中我放置了一个JQTreeview,我绑定了那棵树使用 DataUrl 的控制器方法的数据库,它是JQTreeview的属性。我必须根据树的选定项添加新节点。此时我正在尝试重新加载页面,但控制不会转到控制器方法。

对于重新加载页面我正在使用 window.location.reload(); in javascript。

代码:

Hi,

Can anybody tell me how to reload a view in MVC3 using javascript.

Here is my scenario :

In View i placed a JQTreeview and i am binding that tree with database from controller method using DataUrl, It is a property of JQTreeview. I have to add new node based on selected item of the tree. At this point i am trying to reload the page but control is not going to the controller method.
For reloading page i am using window.location.reload(); in javascript.
Code:

MVC@Html.Trirand().JQTreeView(
                new JQTreeView                {
                    DataUrl = Url.Action("TreeView_TextAndImages_DataRequested"),
                    Height = Unit.Pixel(300),
                    Width = Unit.Pixel(300),
                    ClientSideEvents = new TreeViewClientSideEvents { Select = "SelectNode" },
                }, "treeview")Here is the controller method

public JsonResult TreeView_TextAndImages_DataRequested()        {
            List<jqtreenode> nodes = new List<jqtreenode>();
            ListAllItems();            
            if (lstItems.Count == 0)            {
               nodes.Add(new LeafNode { Text = "New.." });            }
            else  {
                nodes.Add(new LeafNode { Text = "New..", Expanded = true });
                if (check)
                    nodes.Add(new LeafNode { Text = "New Accumulator <date time="">..", Expanded = true });
                var node = nodes.Find(n => n.Text == "New..");
                foreach (TreeItems item in lstItems)                {
                    if (item.TreeItemsCount > 0)                    {
                        node.Nodes.Add(new FolderNode { Text = item.ParentItem, Value = item.ID.ToString(), Expanded = false });
                        AddItems(node.Nodes, item);                    }
                    else
                        node.Nodes.Add(new LeafNode { Text = item.ParentItem, Value = item.ID.ToString() });
                }            
          }            
          return tree.DataBind(nodes);        
}



最后,json结果将返回到树视图,数据将被绑定到treeview。

当我在树中选择一个节点时,将执行JS函数。


Finally json result will be returned to the treeview and data will be binded to treeview.
When i select a node in tree, below JS function will be executed.

function SelectNode(args, event) {            
debugger;            
            var tree = $("#treeview").getTreeViewInstance();
            var nodeOptions = tree.getNodeOptions(args);
            var node = "New Accumulator";
            if (nodeOptions.text == "New..") {                            }
                    }
}



谢谢

Kishore Kumar M


Thanks
Kishore Kumar M

推荐答案

#treeview)。 getTreeViewInstance();
var nodeOptions = tree.getNodeOptions(args);
var node = New Accumulator< /跨度>;
if (nodeOptions.text == 新..){}
}
}
("#treeview").getTreeViewInstance(); var nodeOptions = tree.getNodeOptions(args); var node = "New Accumulator"; if (nodeOptions.text == "New..") { } } }



谢谢

Kishore Kumar M


Thanks
Kishore Kumar M


如果您正在重新加载页面,它应该调用控制器重新加载它。你在做什么,是对的。发生什么让你觉得它没有重装?如果你想看看会发生什么,你可以做window.location ='url'。您是否使用chrome来逐步执行js代码以查看是否调用了该方法?
If you are reloading your page, it should then call the controller to reload it. What you are doing, is correct. What is happening to make you think it's not reloading? You could do window.location = 'url' if you want to see what happens then. Have you used chrome to step through your js code to see if the method is called ?


这篇关于Javascript:在MVC3中刷新视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆