Asp.net mvc 使用外部面板加载程序加载ASP-MVC视图
我有以下布局,与我在中描述的布局相关Asp.net mvc 使用外部面板加载程序加载ASP-MVC视图,asp.net-mvc,asynchronous,ext.net,Asp.net Mvc,Asynchronous,Ext.net,我有以下布局,与我在中描述的布局相关 顺便说一下,我使用的是aspx web应用程序视图我认为不应该将页面代码用于DirectEvents的处理程序。它脱离了MVC的概念。您应该参考控制器的操作 这里有一个例子 示例视图 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %> <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext"
顺便说一下,我使用的是aspx web应用程序视图我认为不应该将页面代码用于DirectEvents的处理程序。它脱离了MVC的概念。您应该参考控制器的操作 这里有一个例子 示例视图
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Ext.Net.MVC v2 Example</title>
</head>
<body>
<ext:ResourceManager runat="server" />
<ext:Viewport runat="server" Layout="BorderLayout">
<Items>
<ext:Panel runat="server" Region="West" Width="100">
<Items>
<ext:Button
runat="server"
Text="Load View 1"
DirectClickUrl=<%# Url.Action("LoadView1") %>
AutoDataBind="true" />
<ext:Button
runat="server"
Text="Load View 2"
DirectClickUrl=<%#Url.Action("LoadView2") %>
AutoDataBind="true" />
</Items>
</ext:Panel>
<ext:Panel ID="MainPanel" runat="server" Region="Center">
<Loader runat="server" Mode="Frame" AutoLoad="false">
<LoadMask ShowMask="true" />
</Loader>
</ext:Panel>
</Items>
</ext:Viewport>
</body>
</html>
Ext.Net.MVC v2示例
控制器示例
using System.Web.Mvc;
using Ext.Net;
using Ext.Net.MVC;
namespace Work2MVC.Controllers
{
public class AspxController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult View1()
{
return View();
}
public ActionResult View2()
{
return View();
}
public ActionResult LoadView1()
{
Panel p = X.GetCmp<Panel>("MainPanel");
p.LoadContent(Url.Action("View1"));
return this.Direct();
}
public ActionResult LoadView2()
{
Panel p = X.GetCmp<Panel>("MainPanel");
p.LoadContent(Url.Action("View2"));
return this.Direct();
}
}
}
使用System.Web.Mvc;
使用Ext.Net;
使用Ext.Net.MVC;
命名空间Work2MVC.Controllers
{
公共类AspxController:控制器
{
公共行动结果索引()
{
返回视图();
}
公共行动结果视图1()
{
返回视图();
}
公共行动结果视图2()
{
返回视图();
}
公共操作结果加载视图1()
{
面板p=X.GetCmp(“主面板”);
p、 LoadContent(Url.Action(“View1”);
返回这个.Direct();
}
公共操作结果加载视图2()
{
面板p=X.GetCmp(“主面板”);
p、 加载内容(Url.Action(“View2”);
返回这个.Direct();
}
}
}
您还可以通过JavaScript在客户端发起加载请求。然后您就可以避免额外的请求。我认为您不应该将页面代码用于DirectEvents的处理程序。它脱离了MVC的概念。您应该参考控制器的操作 这里有一个例子 示例视图
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Ext.Net.MVC v2 Example</title>
</head>
<body>
<ext:ResourceManager runat="server" />
<ext:Viewport runat="server" Layout="BorderLayout">
<Items>
<ext:Panel runat="server" Region="West" Width="100">
<Items>
<ext:Button
runat="server"
Text="Load View 1"
DirectClickUrl=<%# Url.Action("LoadView1") %>
AutoDataBind="true" />
<ext:Button
runat="server"
Text="Load View 2"
DirectClickUrl=<%#Url.Action("LoadView2") %>
AutoDataBind="true" />
</Items>
</ext:Panel>
<ext:Panel ID="MainPanel" runat="server" Region="Center">
<Loader runat="server" Mode="Frame" AutoLoad="false">
<LoadMask ShowMask="true" />
</Loader>
</ext:Panel>
</Items>
</ext:Viewport>
</body>
</html>
Ext.Net.MVC v2示例
控制器示例
using System.Web.Mvc;
using Ext.Net;
using Ext.Net.MVC;
namespace Work2MVC.Controllers
{
public class AspxController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult View1()
{
return View();
}
public ActionResult View2()
{
return View();
}
public ActionResult LoadView1()
{
Panel p = X.GetCmp<Panel>("MainPanel");
p.LoadContent(Url.Action("View1"));
return this.Direct();
}
public ActionResult LoadView2()
{
Panel p = X.GetCmp<Panel>("MainPanel");
p.LoadContent(Url.Action("View2"));
return this.Direct();
}
}
}
使用System.Web.Mvc;
使用Ext.Net;
使用Ext.Net.MVC;
命名空间Work2MVC.Controllers
{
公共类AspxController:控制器
{
公共行动结果索引()
{
返回视图();
}
公共行动结果视图1()
{
返回视图();
}
公共行动结果视图2()
{
返回视图();
}
公共操作结果加载视图1()
{
面板p=X.GetCmp(“主面板”);
p、 LoadContent(Url.Action(“View1”);
返回这个.Direct();
}
公共操作结果加载视图2()
{
面板p=X.GetCmp(“主面板”);
p、 加载内容(Url.Action(“View2”);
返回这个.Direct();
}
}
}
您还可以通过JavaScript在客户端发起加载请求。然后你就避免了一个额外的请求